Solaris 相当于深度/修剪?

Solaris 相当于深度/修剪?

我正在尝试在目录中查找一些文件。默认情况下,查找command正在搜索我指定的目录及其子目录。

我尝试使用depth/maxdepthand prune,但没有任何帮助来克服这个问题。有人能指出在 Solaris 中使用深度/修剪的正确方法吗?

我的代码如下所示:

find file_path -depth 1 -name '*.log'

我收到以下错误:

find: bad option 1
find: [-H | -L] path-list predicate-list

答案1

您混淆了两个具有模糊相似名称的不相关选项:

  • -depth不接受任何争论。如果存在,它指示find在处理目录本身之前处理目录的内容。
  • -maxdepth N(其中 N 是整数)将递归限制为 N 级子目录。

-maxdepth选项是某些版本的 中的扩展find,但 Solaris 的版​​本中没有。仅使用标准选项来find处理目录而不递归有一个技巧:-prune在子目录上使用,但排除顶级目录。由于匹配顶级目录的唯一方法是按名称,因此请安排名称.(永远不会是子目录的名称)。

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print

相关内容