在z/OS (大型机2.1版) Unix System Services区域,我试图执行以下命令:
假设我有以下目录结构:
/tmp
/dir1-include
/dir2-exclude
/dir3-include
/dir4-exclude我正在尝试计算dir1-include和dir3-include中90天以上的所有文件。以下命令似乎不起作用:
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`发布于 2018-04-18 18:10:17
有很多方法可以做到这一点。下面的所有选项都适用于z/OS。
如果您的find不支持-path,并且假设没有文件名将包含换行符(通过管道连接到wc),那么可以使用grep:
find /tmp/ -type f -mtime +90 | grep -v /tmp/dir2-exclude | grep -v /tmp/dir4-exclude | wc -l如果被排除的目录共享一个模式(不排除您想要保留的任何内容),则可以将其简化为:
find /tmp ... | grep -cv '/tmp/dir.*-exclude'..。同样,这将错误地计算find的输出,如果其中有带有换行符的目录或文件名。
如果您的find支持多个启动路径,以及希望包含共享模式的路径,那么您可以这样处理它:
find /tmp/dir*-include -type f -mtime +90 | wc -l另外,-prune选项不会下降到上述目录下。
find /tmp/ -type d -name "/dir2-exclude" -prune -o -type d -name "/dir4-exclude" -prune -o -type f -mtime +90 | wc -lhttps://unix.stackexchange.com/questions/438542
复制相似问题