Bash脚本遍历目录并查找文件并重命名

问题描述 投票:0回答:2

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

bash
2个回答
0
投票

击只。假设您位于###文件夹所在的目录中,并且目标目录已存在于$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

0
投票

你可以试试这个:

for f in $(find path/to/search -name "file.sum") 
do 
   mv "$f" ~/summary/$(dirname "$f").$(basename "$f") 
done
© www.soinside.com 2019 - 2024. All rights reserved.