Files
使用文件名創建目錄並將文件移動到其各自的文件夾
我的問題有點不同:
由於在同一個文件夾中,我有每個文件的兩個類似副本,例如:
001.txt 和 001(1).txt
……
100.txt 和 100(1).txt
對於每兩個相似的副本,創建一個文件夾並將兩個相似的副本移動到一個文件夾中。 001.txt 和 001(1).txt 放入 001 文件夾
基於上述問題,但不起作用。來自上述問題的命令:
set -o errexit -o nounset cd ~/myfolder for file in *.txt do dir="${file%.txt}" mkdir -- "$dir" mv -- "$file" "$dir" done
試過:
set -o errexit -o nounset cd ~/myfolder for file in *(1).txt do dir="${file%.txt}" mkdir -- "$dir" mv -- "$file" "$dir" done
此命令將為每個文件創建文件夾。
有什麼建議可以區分像 001.txt 和 001(1).txt 這樣的文件,這樣我們就可以選擇所需的文件來創建一個文件夾,然後執行另一個命令來歸檔相同的目標?
你快到了。您缺少的是,您還需要嘗試從文件名中去除括號中的數字以派生目錄:
#!/bin/sh for file in *.txt do dir="${file%.txt}" # Remove suffix dir="${dir%(*)}" # Remove bracketed suffix if present mkdir -p -- "$dir" # Create if necessary mv -f -- "$file" "$dir" # Move the file done
mkdir
您可以在and前面mv
加上前綴,echo
以查看在您採取行動之前會發生什麼。