将文件夹和子文件夹的多个文件移动并重命名到新文件夹中

时间:2019-12-04 11:49:54

标签: shell directory rename move

所以我有一个很大的文件夹结构,并想将所有现有文件移动到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  

很不幸,我不知道该如何自动化,但是很乐意提出建议。
预先谢谢大家:)

1 个答案:

答案 0 :(得分:0)

find Old -type f -exec bash -c '
  for p; do
    q=${p#Old/}
    echo mv "$p" "New/${q//\//_}"
  done' _ {} +

如果您对输出感到满意,请删除echo