Bash脚本浏览目录并查找文件并重命名它们

时间:2019-04-09 12:55:07

标签: bash

我想转到每个文件夹,然后在每个文件夹中找到一个文件(file.sum)。如果文件存在,我想重命名以指示它来自的文件夹(即265.file.sum,然后将其移动到另一个文件夹(我们将其称为〜/ summary)。)文件夹名称使用3位数字001到365。文件夹数量不是必需的365。可以是250或100。 您如何使用bash脚本进行操作? 预先感谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

for f in $(find path/to/search -name "file.sum") 
do 
   mv "$f" ~/summary/$(dirname "$f").$(basename "$f") 
done

答案 1 :(得分:0)

仅限Bash。假设您位于###文件夹所在的目录中,并且目标目录已经存在于$some_path中。

for f in [0-9][0-9][0-9]/file.sum
do d="${f%/*}"  # current immediate folder name
   n="${f##*/}" # basename
   mv "$f" "$some_path/summary/$d.$n"
done