find 命令
find 命令可以查找指定时间范围内修改、创建或访问过的文件。要删除特定时间范围内的文件,可以使用以下语法:
find /path/to/directory -newerct {开始时间} -a -not -newerct {结束时间} -exec rm -rf {} \;
其中:
* /path/to/directory 是要搜索的目录。
* {开始时间} 和 {结束时间} 是要删除的文件的修改时间范围。它们可以是绝对时间或相对时间(如 “-10days”)。
例子
例如,要删除过去 10 天内但不在过去 5 天内的 /var/log 目录中的所有文件,可以使用以下命令:
find /var/log -newerct "-10days" -a -not -newerct "-5days" -exec rm -rf {} \;
xargs 命令
xargs 命令可以将多个命令行的输出作为参数传递给另一个命令。它可以与 find 命令结合使用来删除文件:
find /path/to/directory -newerct {开始时间} -a -not -newerct {结束时间} | xargs rm -rf
find2prune
find 命令提供了 -prune 选项,可以跳过当前目录的搜索。这可以提高性能,尤其是在搜索大目录时。
find /path/to/directory -prune -o -newerct {开始时间} -a -not -newerct {结束时间} -exec rm -rf {} \;
注意
* 在执行删除命令之前,请确保已备份重要文件。
* 使用 -exec 选项时,必须使用分号 (;) 作为命令序列的结尾。
* find 命令可以递归搜索目录。如果要仅搜索顶层目录,请使用 -maxdepth 1 选项。