美文网首页
使用find提高工作效率

使用find提高工作效率

作者: 生信成长日记 | 来源:发表于2021-08-10 17:35 被阅读0次

find 命令用来在指定目录下查找文件,熟练掌握对提高工作效率很有帮助。find语法:

find path -option [ -print ] [ -exec -ok command ] {} \;

path:要查找的目录路径;

print:表示将结果输出到标准输出;

exec:对匹配的文件执行该参数所给出的shell命令,格式为command {} \;

ok:与exec作用相同,区别在于,在执行命令之前,都会给出提示,让用户确认是否执行;

options :用来设置查找方式。

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

 -perm                                #按执行权限来查找

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

 -group groupname            #按组来查找

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

 -atime -n +n                   #按文件访问时间来查找文件,-n指n天以内,+n指n天以前

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

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

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

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

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

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

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

 -prune                            #忽略某个目录


逻辑运算

-a:and逻辑与

-o:or逻辑或

-not:not逻辑非

用法举例

按照文件名搜索

find ./ -name '[A-Z]*.txt' -print        ## 在当前目录及子目录中,查找大写字母开头的txt文件

find ./ -name "*.jpg"                ## 找到当前目录及子目录下所有以jpg结尾的文件

find ./ -name "*.jpg" -o -name "*.png"            ## 找到当前目录及子目录下所有以jpg或png结尾的文件

find ./ ! -name "*.png"                    ## 找到当前目录及子目录下不是以png结尾的文件

按照路径搜索

find ./ -path "*only*"            ## 找到当前目录及子目录下,路径中包含only的文件

按照文件类型查找

f 普通文件

l 符号连接

d 目录

c 字符设备

b 块设备

s 套接字

p 具名贮列

find ./ -type f -path "*only*"

限制搜索深度

find ./ -mindepth 2 -maxdepth 2 -name "*.png"

根据文件大小查找

b —— 块(512字节)

c —— 字节

w —— 字(2字节)

k —— 千字节

M —— 兆字节

G —— 吉字节

find ./ -type f -size +100M            ## 查找当前目录及子目录下,大于100M的文件

根据文件执行权限查找

find ./ -perm 755

按照文件拥有者查找

find ./ -type f -user root

find ./ -type f -group root

按照时间查找

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

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

变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

find . -type f -mtime -1            ## 找出1天内被修改过的文件

find . -type f -atime -7            ## 找出最近1周内被访问过的文件

find . -newer "aa.txt" -type f        ## 查找比 aa.txt 新的文件

找出空文件

find . -empty

找到文件后执行命令

\;用来表示命令结束

find . -type f -name "*.js" -exec rm {} \;            ## 找到后删除

find . -name 'aa.txt' -exec cp {} {}.bak \;        ## 查找 aa.txt 并备份为aa.txt.bak

shell编程:find命令 - 豆浆D - 博客园

linux find命令怎么用-linux运维-PHP中文网

相关文章

网友评论

      本文标题:使用find提高工作效率

      本文链接:https://www.haomeiwen.com/subject/mgoxbltx.html