首页 > 解决方案 > Find 命令的参数列表太长错误

问题描述

我想从子目录中找到带有发布时间的文件名,下面的代码工作正常,但突然间我收到了 Argument list too long 错误。

find /bishare/IRP_PROJECT/SXM_SFTP/*/INBOUND/* -name "*.xml" -type f -print0 | xargs -0 stat -c "%y  %n"   >> /appinfprd/bi/infogix/IA83/InfogixClient/Scripts/IRP/File_Posted_$CURRENT_DATE.txt

标签: shellunix

解决方案


如果通配符的扩展产生的字符多于ARG_MAX.

尝试将其拆分,以便没有通配符。

find /bishare/IRP_PROJECT/SXM_SFTP/ -type -d -name INBOUND -execdir \
    find . -name "*.xml" -type f -print0 \; |
xargs -0 stat -c "%y  %n"  >> /appinfprd/bi/infogix/IA83/InfogixClient/Scripts/IRP/File_Posted_$CURRENT_DATE.txt

推荐阅读