如何找到正好 8 层深度的文件名?

如何找到正好 8 层深度的文件名?

我正在使用“查找”命令来搜索备份系统中的文件。我想找到包含特定字符串的所有文件名(例如'XYZ')正好有 8 层深。

有没有可以做到这一点的查找语法?多谢。

答案1

假设您使用的是 GNUfind或其他find具有这些选项的软件,

find . -mindepth 8 -maxdepth 8 -name '*XYZ*'

如果你没有这样的find命令,你可以使用这个 POSIX 版本:

# must contain exactly 7 slashes
find . -path '*/*/*/*/*/*/*/*' -prune -name '*XYZ*'

-path '*/*/*/*/*/*/*/*'选择至少 8 层深度的路径(包含至少 7 个斜杠,深度 0 是.其本身,深度 1 是当前目录中的文件),-prune为它们执行操作将阻止find下降到那些 8 层深度的文件夹,因此9级及以上的就再也见不到了。

相关内容