文件类型确定

文件类型确定

作为产品的一部分,提供了多个脚本。

在其中一个脚本中,我发现以下行似乎无法正常工作

find . -name *.old -type f -mtime +7 | xargs compress -f

file当对 *.old 文件之一执行命令时,我得到以下结果:ASCII text, with very long lines

您有什么建议可以做什么吗?

答案1

该命令的输出与命令序列失败的file原因无关。file

除了原始命令的输出之外find,最有趣的是以下内容的输出:

find . -name *.old -type f -mtime +7

如果没有文件名回显,则将在compress不带参数的情况下调用,因此等待标准输入。如果找到的文件的文件名中有空格,那么xargs将其移交给压缩也会出现问题。

您至少应该尝试将其更改为:

find . -name "*.old" -type f -mtime +7 -print0 | xargs -0 --no-run-if-empty compress -f

根据OP评论进行更新,这将是:

find . -name "$FILE" -type f $ACTION_TYPE +$PARAM -print0 | xargs -0 --no-run-if-empty compress -f 

for-print0确保find-0空格的文件名正确传递到压缩。如果根本没有找到文件,
则会--no-run-if-empty阻止xargs运行。compress

相关内容