Linux中的Find(查找)命令是在Linux系统中最重要并且更有用的命令之一。Find命令主要用于指定匹配文件条件的参数查找或者定位文件和目录的列表。Find命令能够被使用基于各种各样的条件,例如permissions(权限),users(用户),groups(组),file type(文件类型),date(日期),size(大小)等等其它可能的条件。
find命令用来精细查找文件或目录。基本语法格式如下:
find [查找范围] [查找条件表达式]
find常用的查找条件如下:
- -name:按名称查找;根据目标文件的名称进行查找,允许使用“*”及“?”通配符;
- -size:按文件大小查找;一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件。常用的容量单位包括kB(注意k是小写)、MB、GB;
- -user:按文件属主查找;
- -type:按文件类型查找;类型指的是普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等。
同时使用多个查找条件时,各表达式之间可以使用逻辑运算符“-a”、“-o”,分别表示而且(and)、或者(or)。
应用示例:
1、查看主目录Linux迷目录下所有*.txt的文件
[linuxmi@linux:~$] find ~/Linux迷/ -name *.txt
/home/linuxmi/Linux迷/LinuxMi.com.txt
/home/linuxmi/Linux迷/www.LinuxMi.com.txt
/home/linuxmi/Linux迷/LinuxMi.txt
2、查看主目录Linux迷目录中所有文件
[linuxmi@linux:~$] find ~/Linux迷/ -type f
/home/linuxmi/Linux迷/LinuxMi.com.txt
/home/linuxmi/Linux迷/LinuxMi1.py
/home/linuxmi/Linux迷/Linux迷微信公众号
/home/linuxmi/Linux迷/linuxmi.com.jpg
/home/linuxmi/Linux迷/www.LinuxMi.com.txt
/home/linuxmi/Linux迷/LinuxMi3.py
/home/linuxmi/Linux迷/Linux.zip
/home/linuxmi/Linux迷/LinuxMi.txt
/home/linuxmi/Linux迷/LinuxMi2.py
3、查看主目录Linux迷目录中所有目录
[linuxmi@linux:~$] find ~/Linux迷/ -type d
/home/linuxmi/Linux迷/
/home/linuxmi/Linux迷/LinuxMi
/home/linuxmi/Linux迷/Linux迷
4、查看主目录Linux迷目录中大于10k的文件
[linuxmi@linux:~$] find ~/Linux迷 -size +10k
/home/linuxmi/Linux迷/Linux迷微信公众号
/home/linuxmi/Linux迷/linuxmi.com.jpg
/home/linuxmi/Linux迷/Linux.zip
5、查看主目录Linux迷目录中小于10k的文件
[linuxmi@linux:~$] find ~/Linux迷 -size -10k
/home/linuxmi/Linux迷
/home/linuxmi/Linux迷/LinuxMi.com.txt
/home/linuxmi/Linux迷/LinuxMi1.py
/home/linuxmi/Linux迷/www.LinuxMi.com.txt
/home/linuxmi/Linux迷/LinuxMi3.py
/home/linuxmi/Linux迷/LinuxMi
/home/linuxmi/Linux迷/LinuxMi.txt
/home/linuxmi/Linux迷/LinuxMi2.py
/home/linuxmi/Linux迷/Linux迷
6、查看主目录Linux迷目录中大于100M和名字为*.iso的显示出来
[linuxmi@linux:~$] find ~/Linux迷/ -size +100M -a -name *.iso
/home/linuxmi/Linux迷/CentOS.iso
7、查看主目录Linux迷目录中大于100M或者名字为*.iso的显示出来
[linuxmi@linux:~$] find ~/Linux迷/ -size +100M -o -name *.iso
/home/linuxmi/Linux迷/CentOS.iso
/home/linuxmi/Linux迷/Debian.iso
8、查找/tmp目录下的所有空目录。
[linuxmi@linux:~$] sudo find /tmp -type d -empty