linux下find指令的使用

先用一张思维导图来阐述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" -delete
find . type f -name "*.swp" | xargs rm
xargs可以把从 stdin 接受到的输入,用空白符分隔开,然后依次作为参数去调用xargs后面的命令
find 

将当前目录下的所有权变更为mj:
find . -type f -user root -exec chown mj{} \;

将找到的文件全都copy到另一个目录:
find . -type f -mtime +10 -name "*.txt" -exec cp {} OLD \;

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值