shell - 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
解决方案
如果通配符的扩展产生的字符多于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
推荐阅读
- database - 带有对象的文档上的 MongoDB 聚合
- ios - 从 viewDidAppear() 调用函数会导致内存泄漏,但从 viewWillLayoutSubiews() 不会
- bash - bash:从动态变量中获取值
- java - 在 onCreate() 中获取 Switch 的状态
- puppeteer - 如何使用 puppeteer 从网站打印响应 json?
- ios - Sirikit 自定义意图和 iOS 13.4.1 的国际化问题
- c# - 根据下拉选择自动填充文本框
- java - 究竟何时调用 AppWidgetProvider.onRestored()?
- node.js - Nodejs将图像转换为字节数组
- r - 更改闪避条形图的默认 ggplot 颜色