【发布时间】:2015-09-21 07:38:41
【问题描述】:
我有 2 个或更多目录路径存储在一个变量中 - 查找命令的输出:
folders="$(find /g -type d -name "jpgtest*")"
注意:目录名称可能有空格。
假设有 2 个目录: g/jpgtest1 , g/jpgtest2。
如何在这两个子目录的所有子目录中搜索“*.A”形式的所有文件,
然后删除所有格式为“*.B”的文件,其中 * 表示:名称以与扩展名为 A 的文件相同的名称开头。
例如:找到:g/jpgtest1/test1/j.A
删除: g/jpgtest1/test1/j1.B ,但不要删除 g/jpgtest1/test1/f1.B
2 个目录以此类推。
一个可能的解决方案:
shopt -s globstar nullglob
for f in $folders/**/*.A ; do
rm -f "${f%.A}"*.B
done
但它仅适用于“文件夹”中的一个目录,我应该更改什么以便它也适用于多个目录。
编辑:
任何解决方案当它在 bash 脚本中并且“文件夹”的内容未知时,例如,由于查找超过一个月的文件夹:
folders="$(find /g -maxdepth 1 -type d -atime +30)"
【问题讨论】:
标签: bash