我正在尝试编写一个将超过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循环。
答案 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