将文件夹和子文件夹的多个文件移动并重命名到新文件夹中
move and rename multiple files of folders and subfolders into new folder
所以我有一个巨大的文件夹结构,我想将所有现有文件移动到 1 个新文件夹中,并将之前的文件夹名称作为前缀。
示例:
Old/Test/a1/Tree.txt
Old/Test/a1/House.txt
Old/Test/a2/Dog.txt
Old/Test/a3/Cat.txt
--> New/Test_a1_Tree.txt
--> New/Test_a1_House.txt
--> New/Test_a2_Dog.txt
--> New/Test_a3_Cat.txt
不幸的是,我不知道如何自动执行此操作,但希望得到建议。
提前谢谢大家:)
find Old -type f -exec bash -c '
for p; do
q=${p#Old/}
echo mv "$p" "New/${q//\//_}"
done' _ {} +
如果您对输出满意,请删除 echo
。
所以我有一个巨大的文件夹结构,我想将所有现有文件移动到 1 个新文件夹中,并将之前的文件夹名称作为前缀。
示例:
Old/Test/a1/Tree.txt
Old/Test/a1/House.txt
Old/Test/a2/Dog.txt
Old/Test/a3/Cat.txt
--> New/Test_a1_Tree.txt
--> New/Test_a1_House.txt
--> New/Test_a2_Dog.txt
--> New/Test_a3_Cat.txt
不幸的是,我不知道如何自动执行此操作,但希望得到建议。
提前谢谢大家:)
find Old -type f -exec bash -c '
for p; do
q=${p#Old/}
echo mv "$p" "New/${q//\//_}"
done' _ {} +
如果您对输出满意,请删除 echo
。