我有一个服务器,它在日志目录中创建了几个日志文件。由于这种日志记录机制,它在我的服务器上占用了很多磁盘空间。我想编写一个脚本,删除所有超过一天的文件并保留最新的文件。删除超过一天的文件
我可以使用ls -trl
命令以排序的形式列出目录。但我无法理解如何删除这些文件。请帮忙。
我有一个服务器,它在日志目录中创建了几个日志文件。由于这种日志记录机制,它在我的服务器上占用了很多磁盘空间。我想编写一个脚本,删除所有超过一天的文件并保留最新的文件。删除超过一天的文件
我可以使用ls -trl
命令以排序的形式列出目录。但我无法理解如何删除这些文件。请帮忙。
尝试使用RM和find命令,如:
find . -mmin +$((60*24)) -exec rm {} \;
find . -mtime +1 -exec rm {} \;
虽然代码是赞赏,它应该总是有一个附带的解释。这不需要很长时间,但它是预期的。 – peterh
我同意这一点。我只是留下了我的答案,因为与我同时发布的其他答案实际上是相同的,并进行了解释。没有看到编辑我的观点。 –
你不想ls
,你想find
。
它有一个整洁的参数-mtime
,它将结果限制为特定的时间增量,而-exec
允许您提供命令来运行结果。
因此,例如,
find -mtime +10 -name "*tmp*" -exec rm {} \;
是否上的所有文件rm
年龄超过10
天,在名称中tmp
。
噢,小心点。
非常小心。
使用['find(1)'](http://linux.die.net/man/1/find),注意不要在脚下自己拍摄。 – unwind