linux下find指令的使用

来源:互联网 发布:调价软件 编辑:程序博客网 时间:2024/06/07 19:26

先用一张思维导图来阐述find的选项


接下来通过几个练习对上述指令进行掌握

按文件名查找

查找txt和pdf文件  print是可选的,注意花括号与字符之间的距离find . \( -name "*.txt" -o -name "*.pdf" \) -print查找所有非txt文本find . ! -name "*.txt" -print查找根目录下文件名为ls的文件find / -name ls查找用户的主工作目录中的文件find ~ -name "*" -print 

按路径查找

如果希望在/apps目录下查找文件,但不希望在/apps/bin目录下查找,可以用:$ find /apps -path "/apps/bin" -prune -o -print避开多个文件夹find /usr/sam ( -path /usr/sam/dir1 -o -path /usr/sam/file1 ) -prune -o -print-o 是或者的意思 -a 是而且的意思 -not 是相反的意思   它将首先匹配所有的文件然后再进入子目录中查找。$ find / -name "CON.FILE" -depth -print从当前目录开始查找位于本文件系统中文件名以XC结尾的文件:$ find . -name "*.XC" -mount -print

按类型查找

find . -type d -print  //只列出所有目录在当前目录下查找除目录以外的所有类型的文件$ find . ! -type d -print在/etc目录下查找所有的符号链接文件,可以用$ find /etc -type l -print注意:find支持的文件检索类型可以区分普通文件和符号链接、目录等,但是二进制文件和文本文件无法直接通过find的类型区分出来;

按时间查找

最近第7天被访问过的所有文件:find . -atime 7 -type f -print最近7天内被访问过的所有文件:find . -atime -7 -type f -print查询7天前被访问过的所有文件:find . -atime +7 type f -print查找更改时间比文件sam新但比文件temp旧的文件:find -newer httpd1.conf ! -newer temp -ls

按大小查找

寻找大于2k的文件:find . -type f -size +2k查找大于5555字节小于5557字节的文件find /root -size -500K -size +50K -exec ls -ld {} \;注:{}是一个特殊的字符串,对于每一个匹配的文件,{}会被替换成相应的文件名;

按权限查找

找具有可执行权限的所有文件find . -type f -perm 644 -print 找用户root所拥有的文件find . -type f -user root-print

按用户查找

找用户root所拥有的文件find . -type f -user root-print在$HOME目录中查找文件属主为root的文件$ find ~ -user root -print在/etc目录下查找文件属主为root的文件:$ find /etc -user root -print在/home目录下查找找属主帐户已经被删除的文件$ find /home -nouser -print在/apps目录下查找属于root用户组的文件,可以用:$ find /apps -group gem -print从跟系统查找没有有效所属用户组的所有文件,$ find / -nogroup -print

找到的后续动作

删除当前目录下所有的swp文件:find . -type f -name "*.swp" -deletefind . type f -name "*.swp" | xargs rmxargs可以把从 stdin 接受到的输入,用空白符分隔开,然后依次作为参数去调用xargs后面的命令find 将当前目录下的所有权变更为mj:find . -type f -user root -exec chown mj{} \;将找到的文件全都copy到另一个目录:find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD \;

2 0
原创粉丝点击