今天,我们将向您展示一种方法,您可以通过它 删除早于“X”天的文件. 假设您想删除超过 7 天的文件,那么本文将帮助您做到这一点。 find 实用程序允许您传入几个有趣的参数,包括一个对每个文件执行另一个命令的参数。 为了找出比特定天数更旧的文件,我们将使用这个 找到效用 然后使用 rm命令 删除它们。 命令语法如下:
查找 /path/to/files* -mtime +5 -exec rm {} \;
我们不对可能发生的任何数据丢失负责。 我们向您推荐了 列出文件并检查 在删除它们之前,通过运行以下命令:
查找 /path/to/files* -mtime +5 -exec ls {} \;
请注意: rm、{}和\之间有空格;
命令说明:
上述命令中的第一个参数是 文件的路径. 第二个论点是 Mtime时光网 用于指定文件存在的天数。 如果输入 +5,它将查找超过五天的文件。 最后一个论点是 执行 允许您传入诸如 rm 之类的命令。 这 {} \; 最后需要终止命令。
这应该适用于几乎所有版本的 Linux,如 Ubuntu、Fedora、Red Hat、Suse 等。如果您遇到任何在这里似乎不可能的问题,请在下面的评论中告诉我们。
苏拉·萨伦赫
我用了这个技巧! 绝招! 感谢分享这么好的技巧:)
阿姆鲁塔·帕蒂尔
是的,我在 RHCE 的练习期间使用了这个命令。
方勇
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
alias 5DayLs="find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld"
在这里根据您的建议将一些东西拼凑在一起。 一种制作五天前文件的纯文本文件列表的方法。 在删除文件之前更容易保留查看记录。 然后用户可以使用 cat、vi、vim、gedit、emacs 来看看他们可能会抛出什么。
find ./* -mtime +5 -exec ls {} \; >> ./5DaysOld
分解它 ./ 是当前目录。 使用当前目录查找通常比使用 / cannon 更安全。 >> 附加到一个文件,如果它不存在,它会被创建。
甚至认为它可以用作别名。 可能可以/应该首先将它移植到 shell 脚本。 虽然很懒,来晚了。
本·派珀
谢谢! 我在 cron 作业中使用了这种语法。
维维安
删除超过特定日期的文件的好提示。 但是,如果您的参数列表很长(我认为最大值是 65535 或类似的东西),这将不起作用。
我有一个自定义脚本来完成这项工作:
#!/bin/bash
cd /directory-to-be-checked
allfiles=`ls`
NOW=`date +%s`
for filename in $allfiles
do
OLD=`stat -c %Z $filename`
if [ "$2" == "" ]
then
DELAY=86400
else
let "DELAY=$2 * 86400"
fi
AGE=`expr $NOW - $OLD`
#echo "Delay is $DELAY and Age is $AGE"
#exit 0
if [ $AGE -gt $DELAY ]
then
#echo "File $filename is $AGE"
fstamp=`ls -l $filename`
if [ "$1" == "DEL" ]
then
echo "Deleting file $filename"
`rm -f $filename`
else
echo "$fstamp"
fi
fi
完成。
拉杰什·纳姆塞
谢谢提供剧本。
维维安
欢迎您的命名。
像这样调用脚本:
./scriptname.sh DEL numDays
如果未指定 numDays,它将使用最小值 1,因此请确保指定 numDays。 对于您使用此脚本的方式以及可能发生的任何数据丢失,我概不负责。
爬完
如果我想将 30 天前的目录和文件删除到我的远程机器上,还有一件事不包括 1 和 2 或 3 个目录,那么我该怎么做..?? 请分享您的想法。
阿里
我使用这个技术在oracle中删除trc文件非常有用
Ethan
感谢您为所有用户分享这个有用的命令。 我们可以轻松删除 Linux 中的旧文件。 我也在寻找它,终于在这里找到了解决方案。
格雷格
这是否也获取子目录中的文件? 如果是这样,我该怎么做才不会呢?
查找 /home/greg/logs -type f -mtime +5 -exec rm {} ;
苏拉·萨伦赫
我正在寻找这样的命令。 真的很有帮助。 感谢分享剧本,薇薇安。
苏雷什·穆萨莱
亲爱的团队,
我需要删除 14 天前的目录,如果目录中只有数字,则应该删除目录
对于实施例:
目录名称 20180424 应删除
目录名称 20180424backup 应删除
实际上,使用正则表达式和 mtime 的 Find 命令不起作用。
查找路径正则表达式 mtime -14 | xargs rm -rf {}\;
不工作