find
find
命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find
命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
具体命令如下:
find 查找目录 查找参数 查找内容
常用查找参数如下:
-amin<+|-分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<+|-24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<+|-分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<+|-24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-mmin<+|-分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mtime<+|-24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-depth:从指定目录下最深层的子目录开始查找;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-follow:排除符号连接;
-gid<群组识别码>:查找符合指定群组识别码的文件或目录;
-group<群组名称>:查找符合指定群组名称的文件或目录;
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录;
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-iname<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符大小写的差别;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-newer<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更接近现在的文件或目录;
-size<+|-|=文件大小>:查找符合指定的文件大小的文件;
-type<文件类型>:只寻找符合指定的文件类型的文件;
-a:是前后条件都要满足;
-o :是满足一个条件就好;
+:表示大于设置值的文件;
- :表示小于设置值的文件;
= :表示等于设置值的文件;
注意:通常使用find
命令的时候使用root
权限,这样就有权限查找任何目录下的内容,本平台默认权限是root
权限,所有在本平台上执行find
命令时不需要加sudo
。
查找/etc
目录下以my
开头以.conf
结尾的文件或目录,具体使用如下命令:
sudo find /etc -name "my*.conf"
*
表示任意字母。
查找/etc
目录下在超过7
天前被访问的文件或目录,具体使用如下命令:
sudo find /etc -atime +7
查找/etc
目录下恰好在7
天前被访问的文件或目录,具体使用如下命令:
sudo find /etc -atime 7
查找/etc
目录下在5
分钟内被访问的文件或目录,具体使用如下命令:
sudo find /etc -amin -5
-type 文件类型
使用方法
常见文件类型:
f:普通文件
l:符号链接
d:目录
c:字符设备
b:块设备
s:套接字
p:Fifo
查找/etc
目录下以my
开头的目录,具体使用如下命令:
sudo find /etc -name "my*" -a -type d
size <+|-|=文件大小>
使用方法
常见文件大小单位:
b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
查找/etc
目录下大于1M
的文件,具体使用如下命令:
sudo find /etc -size +1M
-exec
使用方法
具体使用方法如下:
find … -exec 要执行的命令 {} \;
-exec
选项后面跟随着所要执行的命令或脚本,然后是一个空格一对儿{}
一个空格和一个\;
。
查找/etc
目录下大于1M
的文件/目录的详细信息,具体使用如下命令:
sudo find /etc -size 1M -exec ls -l {} \;