将所有文件移动到其自己的文件夹中

将所有文件移动到其自己的文件夹中

在 Linux 机器上,有没有什么方法可以将目录下的每个文件移动到它们自己的子目录中(即创建一个以其命名的目录并将其移入)?

答案1

尝试这个代码片段,假设当前目录中只有文件(没有目录):

for file in *
do
  mv "$file" "$file".tmp &&
  mkdir "$file" &&
  mv "$file".tmp "$file"/"$file"
done

否则(仅经过轻微测试):

find . -maxdepth 1 -type f -exec mv '{}' '{}'.tmp \; -exec mkdir '{}' \; -exec mv '{}'.tmp '{}'/'{}' \;

这在我的测试目录中起作用,其中有几个任意命名的文件,其中一些带有空格。

相关内容