使用除了FIND之外的mtime

时间:2011-08-08 06:02:20

标签: unix solaris

我正在尝试编写一个将超过1天的文件移动到存档目录的脚本。我使用了以下find命令:

for filename in `find /file_path/*.* -type f -mtime +1`

由于我的参数列表太大而无法由find处理,因此失败。我收到以下错误:

/usr/bin/find: arg list too long

是否可以在find声明中使用IF-ELSE?有人可以提供一些在mtime中使用find以外的其他示例。

编辑:添加查找是其中一部分的for循环。

3 个答案:

答案 0 :(得分:2)

find /file_path -name '*.*' -mtime +1 -type f |
while read filename
do ...move operation...
done

假设您的原始代码在文件名中处理空格等的方式是可接受的, 并且在find的行动中没有明智的方法来做这一步。它还避免了超长参数列表的问题。

答案 1 :(得分:2)

为什么不直接使用find的

答案 2 :(得分:1)

如果您只想要cp文件,可以使用

find / file_path -name“” - mtime +1 -type f | xargs -i mv {} / usr / local / archived