系统小窝欢迎您

电脑公司 深度技术
当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux系统删除指定时间段文件的方法

时间:2021-04-10 来源:大神到 人气:

Linux系统下批量删除文件的方法很简单,但是要删除指定时间内的文件比较难,需要通过Linux脚本来实现,下面小编就给大家介绍下Linux删除指定时间内文件的方法。

find查找删除文件

例如从当前目录查找所有以.txt结尾的文件并在屏幕上显示出来,命令行为:

find 。 -name lsquo;*.txtrsquo; -print

查找两个后缀的文件,就改为下面的用法:

find 。 ( -name *.xml -o -name *.sh )

再如从根目录查找类型为符号连接的文件,并将其删除,命令行为:

find / -type l -exec rm {} ;

只查找文件,不包含目录的(该行,不能加--print,加了会报错):

find 。 -type f

又如从当前目录查找用户tom的所有文件并在屏幕上显示,命令行为:

find 。 -user lsquo;tomrsquo; -print

又如显示当前目录中大于20字节的.c文件名,命令行为:

find 。 -name ;*.c; -size +20c -print

显示当前目录中恰好10天前访问过的文件名,命令行为:

find 。 -atime 10 -print

显示当前目录中不到10天前访问过的文件名,命令行为:

find 。 -atime -10 -print

查找/home目录下权限为640的文件或目录,命令行为:

find /home -perm 640

搜索根目录下大于100KB的文件,并显示,命令行为:

find / -size +100K -print

 

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

find / -size -500K -print

删除文件大小为0的文件

rm -i `find 。/ -size 0`

find 。/size 0 exec rm {} ;

find 。/size 0|xargs rm -rf

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

find 。 -name lsquo;*.docrsquo; -mtime +5 -ok rm {} ;或

find 。 -mtime +5 -name ;*.*; -exec rm -f {} ;

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

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

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

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

lrw-rw-r-- 1 root root 36 07-27 14:34 。/example2

lrw-rw-r-- 1 root root 72 07-27 14:36 。/example3

lrw-rw-r-- 1 root root 36 07-27 14:36 。/example1

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

find 。 -name lsquo; [a-z][A-Z][0-9][0-9].docrsquo; -print

查找空文件夹:

find -type d -empty

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

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

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

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

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

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

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

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

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

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

相关文章

  • Linux下怎么删除某文件外的所有文件

    Linux下怎么删除某文件外的所有文件

    Linux下删除文件使用rm指令就可以完成了,那么要删除除了指定文件的其他文件又该使用哪个命令呢?下面小编就大家介绍下删除指定文件以外的文件命令。...
    2014-12-03 06.12.07
  • 怎么利用命令删除和创建Linux文件夹

    怎么利用命令删除和创建Linux文件夹

    我们都知道Linux下rm命令可以删除文件,但如果要删除目录的话就不能只是单纯的使用rm命令了,下面小编就给大家详细介绍下Linux如何使用命令删除和创建...
    2014-12-03 06.12.21
  • Linux中删除带有空格名的文件夹的步骤

    Linux中删除带有空格名的文件夹的步骤

    当文件夹的名称带有空格的时候,在windows下能够轻易的删除,可是在Linux系统中,想要删除名称中带有空格的文件夹可不简单,下面小编就给大家介绍下...
    2014-12-15 05.12.52
  • Linux如何使用命令定时删除过期文件

    Linux如何使用命令定时删除过期文件

    Linux系统操作中,定时删除过期文件能够释放空间内存,避免资源浪费,可使用命令实现,下面小编就给大家介绍下Linux如何使用命令定时删除过期文件。...
    2015-01-19 05.01.42
  • Linux使用命令清理大文件的步骤

    Linux使用命令清理大文件的步骤

    Linux文件多起来十分难清理,存在很多大大小小的文件,使用命令批量清理是最快捷的方法,但文件过多,可以先清理大文件,小编就给大家介绍下Linux使用...
    2015-06-25 04.06.35

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。