如何将一堆文件移动到自己的新文件夹中

如何将一堆文件移动到自己的新文件夹中

我有一个文件夹中的文件列表:

./file1.ext
./file2.ext2
./file3.ext

我想将所有这些文件及其相关名称移动到它们自己的新文件夹中,例如:

./file1/file1.ext
./file2/file2.ext2
./file3/file3.ext

有没有办法用很少的命令来做到这一点?

答案1

您可以使用循环来执行此操作:

for f in *; do
    [ ! -d "${f%.*}" ] && mkdir "${f%.*}/"
    mv "$f" "${f%.*}/"
done

这将创建并移动当前目录中的所有内容。

${f%.*}取尾部扩展名。我还用它来验证目录是否已经存在,以防您有多个文件,例如file1.extfile1.ext1

如果您有一个file1此脚本将不适用于任何以file1

相关内容