仅当名称匹配时,Bash 才会下降到文件中

  • 本文关键字:文件 Bash bash
  • 更新时间 :
  • 英文 :


我在使用使用查找下降到文件的递归脚本时遇到问题。我们已经开始将文件夹标记为 .old,如果它们已过时但暂时无法删除。我正在修改一个脚本,该脚本从树的顶部开始,并根据它们的名称下降到子目录。如何修改 find 命令以不下降到包含 .old 结尾的文件夹中?如果我在这个话题上,我怎么能告诉它只下降到包含 .old 结尾的文件夹中?

目前,该行如下所示:

josh=`find "${file}/."  -name "*.joshfiles"`

谢谢Arik

递归查找不包括.old目录和子目录的文件(假设"${file}"引用目录并且"*.joshfiles"是文件,而不是目录):

find "${file}/." -type f -name "*.joshfiles" -not -path "*.old/*"

或者仅包含.old目录和子目录中的文件:

find "${file}/." -type f -name "*.joshfiles" -path "*.old/*"

如果"*.joshfiles"是目录,那么您将需要以下内容:

find "${file}/." -type f -path "*.joshfiles/*" -not -path "*.old/*"
忽略扩展

名为 .old 的目录:find / ( -type d -name *.old -prune ) -o -print

仅扩展名为 .old 的目录和目录内容:find / ( -type d -name *.old ) -o -path *.old/*

这些标志应该适用于GNU find和BSD find。

相关内容

  • 没有找到相关文章

最新更新