我有一个文件夹中的文件列表:
./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.ext
和file1.ext1
。
如果您有一个file1
此脚本将不适用于任何以file1