【发布时间】:2012-02-04 06:26:01
【问题描述】:
我想将一堆目录从 DIR 重命名为 DIR.OLD。理想情况下,我会使用以下内容:
find . -maxdepth 1 -type d -name \"*.y\" -mtime +`expr 2 \* 365` -print0 | xargs -0 -r -I file mv file file.old
但我要执行此操作的机器安装了 BusyBox,并且 BusyBox xargs 不支持“-I”选项。
有哪些常见的替代方法可以收集文件数组,然后在 shell 脚本中对其执行?
【问题讨论】:
-
\" 是关于什么的?这将告诉 find 列出精确调用
"*.y"的文件(引号将传递给 find 并且 * 将由 shell 扩展,它什么也找不到,并且无论如何都通过了),我怀疑它存在。 -
busybox 的各种编译时选项包括
CONFIG_FEATURE_FIND_PRINT0、CONFIG_FEATURE_FIND_EXEC、CONFIG_FEATURE_FIND_EXEC_PLUS- 方法将或不会工作,具体取决于您的 /i> 副本已编译。
标签: bash shell find xargs busybox