2024年11月Linux系统删除指定时间段文件的方法(2)

发布时间:

  ⑴搜索根目录下小于KB的文件,命令行为:

  ⑵find / -size -K -print

  ⑶删除文件大小为的文件

  ⑷rm -i `find 。/ -size `

  ⑸find 。/size exec rm {} ;

  ⑹find 。/size |xargs rm -rf

  ⑺在当前目录中查找所有文件名以.doc结尾,且更改时间在天以上的文件,找到后进行删除,且删除前给出提示,命令行为:

  ⑻find 。 -name ‘*.doc’ -mtime + -ok rm {} ;或

  ⑼find 。 -mtime + -name “*.*” -exec rm -f {} ;

  ⑽自动删除当前目录五天以前的文件

  ⑾注:后面的反斜杠不能少,不然会报 ”find: 遗漏”-exec”的参数” 。

  ⑿在当前目录下查找所有链接文件,并以长格式显示文件的基本信息,命令行为:

  ⒀find 。 -type l -exec ls -l {} ;

  ⒁lrw-rw-r-- root root - : 。/example

  ⒂lrw-rw-r-- root root - : 。/example

  ⒃lrw-rw-r-- root root - : 。/example

  ⒄在当前目录中查找文件名由一个小写字母、一个大写字母和两个数字组成,且扩展名为.doc的文件,并显示,命令行为:

  ⒅find 。 -name ‘ [a-z][A-Z][-][-].doc’ -print

  ⒆find -type d -empty

  ⒇但是在利用find进行操作时,不难发现两个问题:一是find查找耗费的时间相对较长,二是find查询时较一般的脚本所用的资源要相对大些。而且对于某一个时间段内的文件处理上也不是十分好。所以还是利用普通脚本更实用一些。

  ⒈例如:我想删除某目录下所有月份的文件,就可以利用下面的脚本实现:

  ⒉for filename in *; do if [ `date -r $filename +%m` == “” ];then rm -f $filename; fi done

  ⒊date -r, --reference=文件 显示文件指定文件的最后修改时间 。+%m表示只显示月份,如果结果和是相同的,则执行后面的删除。

  ⒋而且这样做,我们还可以精确到几点几分,删除本目录下点生成的文件:

  ⒌for filename in *; do if [ `date -r $filename +%H` == “” ];then rm -f $filename; fi done

  ⒍删除点分生成的所有文件:

  ⒎for filename in *; do if [ `date -r $filename +%H%M == “” ];then rm -f $filename; fi done

  ⒏同理,想要删除某年某月的所有文件也可以使用同样的方法。

  ⒐上面就是Linux删除指定时间段文件的方法介绍了,主要是通过find命令来实现,用户根据个人需求选择合适的脚本处理。