我正在尝试在目录中查找一些文件。默认情况下,查找command
正在搜索我指定的目录及其子目录。
我尝试使用depth/maxdepth
and 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