答案1
find
是功能齐全的替代品,但对于当前目录中文件的简单操作,这个sh
脚本也非常有用(并且更容易读/写):
for file in *.jpg; do
echo "do something with $file"
done
答案2
这寻找命令会执行您想要的操作。以下是示例:
find /mnt/Pictures -name '*.jpg' -mtime +7 -exec rm {} \;
这将删除 中的所有 jpg 文件/mnt/Pictures
,这些文件在过去 7 天(168 小时)或更长时间内没有被修改过。如果您不介意文件名的大小写,请使用-iname
而不是-name
。
以下是参数之间的对应关系福尔菲斯以及参数寻找:
/p
→ 路径是 find 的第一个参数。/s
→ 默认情况下 find 会搜索所有子目录。要禁用此功能,请使用-maxdepth
值为1的选项,即-maxdepth 1
。/c
→-exec
。还要替换@file
为{}
,并且不要忘记以 结束命令\;
(许多初学者都犯过这个错误)。/d
→-mtime n
. 文件数据最后修改时间n*24 小时前;用于+n
大于n并且-n
少于n。
如果需要否定某个条件,请使用!
。因为!
在某些 shell(包括 Bash)下是特殊字符,所以需要对其进行转义或引用,因此\!
大多数时候你会这样写。
答案3
我认为寻找提供 forfiles 提供的功能。
答案4
您可以创建一个使用 find 和适当参数的 cron 作业,例如 -mtime +7