一、find介绍
Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
二、参数
-mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
-empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c : 文件类型是 c 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
-pid n : process id 是 n 的文件
三、案例
-type 类型(f文本文件、d目录、l快捷方式)
[root@A /]# find /boot -type d
[root@A /]# find /opt -type d
[root@A /]# find /etc -type l
[root@A /]# find /boot -type f
-name "文档名称"
]# find /etc/ -name "passwd"
]# find /etc/ -name "*tab"
]# find /etc/ -name "*.conf"
]# find /etc/ -name "*tab" | wc -l
]# find /etc/ -name "*.conf" | wc -l
]# find /etc/ -name "*.conf" | cat -n
# -size +或- 文件大小(k(小写k)、M、G)
# + 表示大于 -表示小于
[root@A /]# find /boot/ -size +300k
[root@A /]# find /boot/ -size +10M
[root@A /]# find /boot/ -size +1M
# 注意: -与1k,1M,1G连用,系统都不识别,也就是说我们使用-的时候,不能将其与1后面加单位一起使用‘
# -user 用户名 (按照数据的所有者)
[root@A /]# useradd natasha #创建用户
[root@A /]# find /home/ -user natasha
[root@A /]# find / -user natasha
# /proc:内存的数据,不占用硬盘空间
#-mtime 修改时间 (所有的时间都是过去时间)
# -mtime +90 #90天之前的数据
# -mtime -90 #最近90天之内的数据
[root@A /]# find /root -mtime +90
[root@A /]# find /root -mtime -10
# 案例:查找并处理文件
# 利用find查找所有用户 student 拥有的必须是文件,把它们
# 拷贝到 /root/findfiles/ 文件夹中
]# useradd student
]# mkdir /root/findfiles
]# find / -user student -type f
]# find / -user student -type f -exec cp {} /root/findfiles \;
]# ls -A /root/findfiles/