1 文件查找find

1、find查找

速度略慢

(精确、模糊)查找

实时查找

查找条件丰富

2 、指定搜索目录层级

find -maxdepth 2  指定最大递归搜索到第几层子目录,当前目录为2

find -mindepth 2           最小

3、指定搜索次序

find命令默认递归搜索子目录文件,默认按照优先进入最后一级子目录,从里往外搜索。

find -depth        此参数是指find命令直接从最后子目录往外搜索

4、 根据文件名和inode查找

find -name filename         默认精确查找,如:*, ?, [], [^],通配符要加双引号引起来
find -ls                显示符合条件文件目录属性信息
find -iname filename     忽略文件名大小写
find -inum n             按inode号查找文件
find -samefile filename  通过指定文件相同inode号的文件
find -links n           链接数为n的文件
find -regex “PATTERN”     支持正则表达式,以PATTERN匹配整个文件路径,而非文件名称

eg:

find -name '*.txt'

 find -redex正则匹配搜索匹配的是全路径

find -regex '.*\.txt$'

5、 根据属主属组查找

find -user <USERNAME>        查找属主为指定用户(UID)的文件
find -group <GRPNAME>        查找属组为指定组(GID)的文件
find -uid <UserID>            查找属主为指定的UID号的文件
find -gid <GroupID>            查找属组为指定的GID号的文件
find -nouser                查找没有属主的文件
find -nogroup                查找没有属组的文件

find  /demo -uid 1001

find /demo -gid 1001

find -user root 

6、 根据文件类型查找(重点)

find -type [文件类型]
 
支持文件类型如下
f    普通文件
d    目录文件
l    符号链接文件
s    套接字文件
b    块设备文件
c    字符设备文件
p    管道文件

7、 查找空文件或目录

find -empty            查找指定目录下空文件和空目录

8、 组合条件

-a  与;默认参数

-o  或

-not 或 ! 非

eg:查找/etc目录下conf后缀文件或者是软连接文件
find /etc -name '*.conf' -o -type l -ls

eg:查找/etc目录下非conf后缀的文件
find /etc -type f -a ! -name '*.conf' -ls 

摩根定律:

(非 A) 或 (非 B) = 非(A 且 B) 
(非 A) 且 (非 B) = 非(A 或 B) 

使用小括号时,必须有空格隔开,而且需要\转义

eg

:找出/etc目录下是conf后缀文件的文件
find /etc -type f -a -name '*.conf'| wc -l
find /etc ! \( ! -type f -o ! -name '*.conf' \)| wc -l

eg:

找出/etc目录下,属主不是root,且文件名不以f开头的文件
find /etc \( -not -user root -a -not -name 'f*' \) -ls
find /etc -not \( -user root -o -name 'f*' \) –ls

eg:找出不是demo用户或者xiaow用户以外用户的文件
find ! \( -user demo -o -user xiaow \)
find ! -user demo -a ! -user xiaow

9、 排除指定目录

find -path [指定目录] -a -prune    -o [其他条件]    移除

eg:

查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
find /etc -path '/etc/sane.d' -a -prune -o -name "*.conf"

10 根据文件大小查找

find -size [+/-][大小munber]        按照指定大小范围查找文件

常用大小单位: byte, c(小写), k(小写), M(大写), G(大写),注意字母大小写,默认查找大小单位为 "k"
find -size [munber]        查找文件大小范围为 (munber -1 , munber]
find -size 5k            查找文件大小范围为 (4,5]k

find -size -[munber]    查找文件大小范围为 [0 , munber -1]
find -size -5k            查找文件大小范围为 [0,4]k

find -size +[munber]    查找文件大小范围为 ( munber , 无穷]
find -size +5k            查找文件大小范围为 (5,无穷]k

eg

查找大于等于100M的文件

find / -type f \( -size +100M -o -size 100*1024*1024 \)

11、 根据时间查找

以"天"为单位
find -atime    [+ / - ]day
find -mtime    [+ / - ]day
find -ctime [+ / - ]day

以"分钟"为单位
find -amin [+ / - ]min
find -mmin [+ / - ]min
find -cmin [+ / - ]min

案例:

find -ctime 7        表示查找前第7天,当前日期为0开始算,也就是date-day
find -ctime 0        表示查找当前一天的文件
find -ctime +7        表示查看前7天以前的文件不包括第7天,也就是[0,date-day)
find -ctime -7        表示查看最近7天修改的文件,从当前天为-1开始算,也是就是(date-day, date]

12 根据文件权限查找

find -perm [/|-]MODE

find -perm MODE        精确权限匹配
find -perm /MODE    任何一类(u,g,o)对象的权限中只要能一位匹配即可,或的关系,+ 从CentOS 7开始淘汰
find -perm -MODE    每一类对象都必须同时拥有指定权限,与关系
0 表示没有权限

find -perm 222        精确匹配文件权限必须是222
find -perm /222        表示只要文件的属主有写权限,"或者"属组有写权限,其他用户随意都匹配
find -perm -222        表示只要文件的属主有写权限,"而且"属组有写权限,其他用户也有写权限
find -perm /7000    表示文件只要有一个特殊权限即可

13、find处理动作

find -print                  #find命令默认处理动作参数,把查找文件打印的屏幕上
find -ls                  #类似于对查找到的文件执行“ls -l”命令
find -fls PATH               #查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
find -delete               #删除查找到的文件,不做任何提示,"慎用!"
find -ok COMMAND {} \;         #对查找到的每个文件执行由COMMAND指定的命令处理,对于每个文件执行命令之前,"都会交互式要求用户确认"
find -exec COMMAND {} \;     #对查找到的每个文件执行由COMMAND指定的命令处理
find命令中"{}"表示引用查找到的文件名称自身,"注意: -ok参数和-exec参数后面必须跟 \;"

14 xargs ---转化为一行显示

xargs -n    以几行为一行显示

eg:

seq 1 100 | xargs -3   ----表示1-100的数按三排显示

xargs -d     ---------    定义分割符

echo “helloXhelloXhelloXhelloXhelloX” | xargs -dX  -----按X分隔符,分割

xargs -i     配合{}改变xargs传入参数位置

cd /etc/ && find -name '*.conf' | xargs -i cp {} /data/

xargs -p    交互式执行命令

seq 10| xargs -p -i echo {} a

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值