find-使用find删除文件

find-使用find删除文件,第1张

2020-08-17

1、命令:

find ./ -type f -name *" filename "* -delete  #星号表示任意长度任意字符,当前目录下查找文件名包含filename的文件,type文件类型f:文件 d:目录,执行删除;是递归查询删除的;默认是不会删除不为空的目录的

find /home/gooagoo/log/ -type f -name "*_2021*" -mtime +7 -delete 

包含2021且大于7天的文件,执行删除

[lxt@gagbksrv ]$ find ./ -mtime +10 | xargs rm -rf

无论是目录还是文件都删除执行

查找修改时间是10天前的文件,执行删除  #最好先执行前半段,执行结果没问题是想要的在执行rm

====================================================

-name   filename             #查找名为filename的文件

-perm                        #按执行权限来查找

-user    username             #按文件属主来查找

-group groupname            #按组来查找

-mtime   -n +n                #按文件更改时间来查找文件,-n指n天以内,+n指n天以前

-mmin     -n +n               #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前

-atime    -n +n               #按文件访问时间来查

-ctime    -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer   f1 !f2              找文件,-n指n天以内,+n指n天以前

-ctime    -n +n               #按文件创建时间来查找文件,-n指n天以内,+n指n天以前

-nogroup                     #查无有效属组的文件,即文件的属组在/etc/groups中不存在

-nouser                      #查无有效属主的文件,即文件的属主在/etc/passwd中不存

-newer   f1 !f2               #查更改时间比f1新但比f2旧的文件

-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]               #查长度为n块[或n字节]的文件

-depth                       #使查找在进入子目录前先行查找完本目录

-fstype                     #查更改时间比f1新但比f2旧的文件

-type    b/d/c/p/l/f         #查是块设备、目录、字符设备、管道、符号链接、普通文件

-size      n[c]               #查长度为n块[或n字节]的文件

-depth                       #使查找在进入子目录前先行查找完本目录

-fstype                      #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-mount                       #查文件时不跨越文件系统mount点

-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                %      #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

-mount                       #查文件时不跨越文件系统mount点

-follow                      #如果遇到符号链接文件,就跟踪链接所指的文件

-cpio                        #对匹配的文件使用cpio命令,将他们备份到磁带设备中

-prune                       #忽略某个目录

说明:

find 后面紧跟的 /root/logs 是要查找的目录,. 表示当前目录

-type f :指定查找对象为文件

-name "*" :指定查找对象名称为任意

-mtime +7 :查找7天以前的老文件

-exec rm -f {} \:执行删除命令,后面有个 {} \ 是必须的

找出/home下不是以.txt结尾的文件

类型参数列表:

向下最大深度限制为3

搜索出深度距离当前目录至少2个子目录的所有文件

UNIX/Linux文件系统每个文件都有三种时间戳:

搜索恰好在七天前被访问过的所有文件

搜索访问时间超过10分钟的所有文件

找出比file.log修改时间更长的所有文件

文件大小单元:

搜索小于10KB的文件

搜索等于10KB的文件

删除当前目录下所有.txt文件

当前目录下搜索出权限为777的文件

找出当前目录下权限不是644的php文件

找出当前目录用户tom拥有的所有文件

找出当前目录用户组sunk拥有的所有文件

找出当前目录下所有root的文件,并把所有权更改为用户tom

上例中,{} 用于与-exec选项结合使用来匹配所有文件,然后会被替换为相应的文件名。

找出自己家目录下所有的.txt文件并删除

上例中,-ok和-exec行为一样,不过它会给出提示,是否执行相应的 *** 作。

查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件中

将30天前的.log文件移动到old目录中

找出当前目录下所有.txt文件并以“File:文件名”的形式打印出来

因为单行命令中-exec参数中无法使用多个命令,以下方法可以实现在-exec之后接受多条命令

查找当前目录或者子目录下所有.txt文件,但是跳过子目录sk

要列出所有长度为零的文件


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8105918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存