shell编程---find命令

shell编程:find命令

find . 列出当前目录以及子目录下的所有文件

find . -name  "11.png"找到当前目录下名字为11.pngd的文件

find .-name  “*.jpg”找到当前目录下目录所有的jpg文件

find .-name"*.jpg" -o -name  "*.png"找到当前目录下jpg和png文件

find . -path "*wysiwyg"找出当前目录下路径中包含的wysiwyg的文件路径

find .! -name  "*.png"找出当前目录下不是以png结尾的文件

 

根据文件类型查找

通过 -type 进行文件类型的过滤

f 普通文件

l 符号连接

d目录

c字符设备

b块设备

s套接字

p Fifo

 

根据文件大小

通过-size来过渡文件尺寸,支持的文件大小单元如下:

b---块(512字节)

c---字节

w--字

k---千字节

M---兆字节

G---吉字节

 

根据访问修改时间

支持下面的时间类型

访问时间(-atime/天,-amin/分钟),用户最近一次访问时间

修改时间(-mtime/天,-mmin/分钟)文件最后一次修改时间

 

根据权限

通过 -perm来实现。举例找出当前权限为777的文件

find .-type f -perm 777

 

根据文件拥有者

find .-type f -user root 找出文件拥有者为roto的文件

 

找到文件后执行命令

通过-ok和-exec来实现。区别在于,-ok在执行命令前会进行二次确认,-exec不会

eg:删除当前目录下所有的js文件,用-ok效果如下,删除前有二次确认

find  .-type f -name "**.js" -ok rm {}\;

 

找出空文件

find .-empty

批量删除文件

find ... -exec rn {};

find ...| xargs rm -rf

  两者都可以把find命令查找到的结果删除

其区别简单的说是前者把find命令发现的结果一次性传给exec选项,这样当文件太多时就可能出现参数太多的错误,相比较而言,后者就可以避免这个错误,因为xargs命令会分批次的处理结果。

 

posted @ 2020-08-09 22:15  吴然_O_o_o  阅读(354)  评论(0编辑  收藏  举报