shell删除n天以前的文件.docxVIP

  • 64
  • 0
  • 约1.62千字
  • 约 5页
  • 2021-04-13 发布于天津
  • 举报
Shell 删除 N 天以前的文件 Shell: 删除 N 天以前的文件 文件夹中2009-08-18 0:05 项目中需要写一个 shell script ,删除某个 文件夹中 N 天以前的文件。 本来以为比较简单, 可是实际写 起来还是发现了一些问题。 主要的思路如下: find . -mtime n -exec rm -f {} \; 即首先找到当前目录中最近修改时间在 N 天以外的文件, 然 后删除这些文件。 但在网上找了一些资料,关于 后删除这些文件。 但在网上找了一些资料, 关于 -mtime 的参 数到底该如何设置,还是有些疑问。 用 man find 找到的相关解释: -mtime nTrue if the file modification -mtime n time subtracted from the initialization time is n-1 to n multiples of 24 h. The initialization time shall be a time between the invocation of the find utility and the first access by that invocation of the find utility to any file utility to any file specified in its path operands. 说 -mtime n 将会找到 24*(n-1) 到 24*n 个小时之间修改过的 文件。 以下是当前目录当中的文件和它们的创建时间,当前时间为 Aug 17 15:37:55. 输入以下几个命令进行测试, $ find $ find . -mtime 1 # 注:找到 24~24*2 小时之 间修改的文件 ./log_2 $ find $ find . -mtime 2 #注:找到 24*2~24*3 小时 之间修改的文件 ./log_3 $ find $ find . -mtime 3 #注:找到 24*3~24*4 小时 之间修改的文件 ./log_4 $ find $ find . -mtime +1 #注:找到 24*2 小时以前修 改的文件 ./log_3 ./log_4 ./log_5 ./log_6 $ find . $ find . -mtime +2 #注:找到 24*3 小时以前修 改的文件 ./log_4 ./log_5 ./log_6 $ find . $ find . -mtime +3 #注:找到 24*4 小时以前修 改的文件 ./log_5 ./log_6 $ find . $ find . -mtime 0 #注:找到 24 小时以内修改 的文件 ./log_1 $ find $ find . -mtime -1 # 注:找到 24 小时以内修 改的文件 ./log_1 $ find $ find . -mtime -2 #注:找到 24*2 小时以内修 改的文件 ./log_1 ./log_2 经过以上测试,可以得到以上的结论: -mtime n:找到 24*n~24*(n+1) 小时之内修改的文件 -mtime n: -mtime +n:找到 24*(n+1) 小时以前修改的文件-mtime 0: -mtime +n: 找到 24*(n+1) 小时以前修改的文件 -mtime 0: 找到 24 小时以内的修改过的文件 -mtime -n: 找到 24*n 小时以内修改过的文件 因此,比如要删除 3 天,即 24*3 小时以前的数据,则应该 使用一下语句: find . -mtime +2 -exec rm -f {} \; 这和 man find 中的说明不太一致, 目前还不知道是什么原因。

文档评论(0)

1亿VIP精品文档

相关文档