Bash
如何在自己的新文件夾中移動一堆文件
我有一個文件夾中的文件列表:
./file1.ext ./file2.ext2 ./file3.ext
我想將所有這些文件移動到他們自己的新文件夾中,並使用它們的相關名稱,例如:
./file1/file1.ext ./file2/file2.ext2 ./file3/file3.ext
有沒有辦法在很少的命令中做到這一點?
您可以使用循環來執行此操作:
for f in *; do [ ! -d "${f%.*}" ] && mkdir "${f%.*}/" mv "$f" "${f%.*}/" done
這將創建並移動目前目錄中的所有內容。
${f%.*}
採取尾隨擴展。我還使用它來驗證目錄是否已經存在,以防您有多個文件file1.ext
,例如file1.ext1
.如果您有
file1
此腳本將不適用於任何以開頭的文件file1