我有多个文件,位于多个目录中,其中一些文件隐藏在子目录下。我希望能够移动所有文件,直到它们仅位于 1 个目录深度。
例如:
/home/folder/subfolder/file1.txt
/home/folder2/file2.txt
/home/folder3/subfolder/subfolder/subfolder/file3.txt
变成:
/home/folder/file1.txt
/home/folder2/file2.txt
/home/folder3/file3.txt
我发现我可以使用
find ./*/ -type f
找到所有文件。但我不确定如何移动它们,以便它们只有 1 个目录深度。
答案1
我在 Bash 脚本中找到了答案
#!/bin/sh
IFS='
'
for i in $(find ./*/ -mindepth 2 -type f); do
mv -- "${i}" "${i%/*/*}"
done