在 z/OS(大型机版本 2.1)Unix 系统服务区域上,我正在尝试执行这个涉及 find 的命令,如下所示:
假设我有以下目录结构:
/tmp
/dir1-include
/dir2-exclude
/dir3-include
/dir4-exclude
我正在尝试计算所有超过 90 天的文件dir1-include
和dir3-include
. 以下命令似乎不起作用:
find /tmp/ \( -path /dir2-exclude -prune -o \
-path /dir4-exclude -prune \
\) \
-o -type f -mtime +90 | wc -l
它给了我:
FSUM6372 Unknown option "-path"
Usage: find directory ... expression`
有很多方法可以做到这一点。以下所有选项都适用于 z/OS。
如果您
find
不支持-path
,并且由于您假设没有文件名将包含换行符(通过管道传递到wc
),您可以使用以下方法解决它grep
:如果您排除的目录共享一个模式(不排除您想要保留的任何内容),您可以将其简化为:
...再次理解如果存在带有换行符的目录或文件名,这将错误地计算 find 的输出。
如果您
find
支持多个起始路径,并且您想要包含的路径共享一个模式,您可以通过这种方式解决它:此外, -prune 选项不会低于提到的目录。