Bash

如何在自己的新文件夾中移動一堆文件

  • October 6, 2022

我有一個文件夾中的文件列表:

./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

引用自:https://unix.stackexchange.com/questions/719967