linux基础之find命令详述

find命令

1、find命令

find命令:根据文件的名称或者属性查找文件。

2、语法格式

find 查找范围 参数

3、通用参数

3.1 -name

-name : 按照文件的名字查找文件,区分大小写 (* :通配符)

# 案例1:查询etc目录下的hosts文件 : find /etc/ -name 'hosts'
# 案例2:查询etc目录下名称中包含hosts的文件: find /etc/ -name '*hosts*'

image

3.2 -iname

-iname : 按照文件的名字查找文件,忽略大小写 (* :通配符)

# 案例:忽略大小写查询etc目录下名称中包含hosts的文件:find /etc/ -iname '*hosts*'

3.3 -size

-size: 按文件的大小查询
  + :大于
  - :小于
  没有符号: 等于
    
# 案例:查找当前目录下文件小于1M大小的文件: find ./ -size -1M

image

3.4 -mtime

-mtime : 查找最后修改时间查询(默认按天算)
  +数字 :n 天以前的(默认+,所以可以省略)
  -数字 :n 天以内的
  
-atime: 按最后访问时间查询
-ctime: 按最后修改属性时间查询
  
  
# 案例:查找当前目录下文件最后修改时间在1天以前的所有文件:find ./ -mtime 1

image

3.5 -user

-user : 按照用户的属主查询

# 案例:查找home目录下属主为bgx的文件:find /home/ -user bgx

3.6 -group

-group :按照用户的属组查询

# 案例7:查找home目录下属组为hr的文件:find /home/ -group hr

image

3.7 -type

-type : 按照文件的类型查询
# 文件类型:
  f : 普通文件
  d : 文件夹
  l : 链接文件
  s : 套接字文件
  p : 管道文件
  c : 字符文件
  b :磁盘文件
  
# 案例1:按照文件类型查找当前目录下的文件夹:find ./ -type d
# 案例2:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录:tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`

image

3.8 -perm

-perm : 按照文件的权限查询(按数字权限)

# 案例9:查找当前文件中权限为755的文件:find ./ -perm 755

image

3.9 -inum

9. -inum : 按照index node号码查询

# 案例10:查找inode编号为17610952的文件:find ./ -inum 17610952

image

4、配合使用参数

4.1 -a

-a : 并且(可以省略,默认是-a)

4.2 -o

-o : 或者

4.3 -maxdepth

-maxdepth : 查询目录深度(必须放置于第一个参数)

# 案例1:查找etc目录下目录深度为3,名字包含ens开头的文件:find /etc/ -maxdepth 3 -iname 'ifcfg-ens*'
# 案例2:查询当前目录下目录深度为2或者文件名中以txt结尾的所有文件:find ./ -maxdepth 2 -o -name '*.txt'

# 知识储备:
  1. dd : 生成文件(常用来造文件来测试): 
    dd if=/dev/zero of=100.txt bs=10M count=10
    if : 从什么地方读 
    of : 写入到什么文件
    bs : 每次写入多少大小
    count : 写入多少次

  2. |: 管道符,意思是把一个命令的结果交给后面一个命令处理。
  3. xarg : 把处理的文本变成以空格分割的一行
  4. `` :提前执行命令,然后将结果交给其他命令来处理

image

image

image

4.4 -exec

-exec :把find处理好的结果交给其他命令并继续处理。
posted @ 2021-12-20 21:21  90啊  阅读(3091)  评论(0编辑  收藏  举报