Linux是一个“一切皆文件的系统”,Linux中标识文件不通过后缀,find命令若不指定查找目录的情况下是针对整个系统进行查找。
一.命令格式
find pathname _options[-print -exec -ok....]
pathname:find命令所查找的根目录。例如用.来表示当前目录,/来表示根目录。
例:
root@ubuntu:~# find /root
/root
/root/file
/root/Test2.txt
...
-print:find命令将所匹配的文件输出到标准输出。(系统默认)
-exec commend { } \; :find命令对所匹配的文件执行该参数所给出的shell命令
例:root@ubuntu:~# find /root -type f -exec ls -l {} \;
-rw-r--r-- 1 root root 1490 May 16 05:08 /root/file
-rw-r--r-- 1 root root 226 May 16 06:40 /root/cmd
-rw-r--r-- 1 root root 0 May 20 18:57 /root/Test2.txt
-ok commend { } \;:和-exec的作用相同,但执行每个命令之前都会提示,让用户确定是否执行,安全性强
二.-options:查找规则
1.-name:按文件名查找文件 //精确查找
-iname:按文件名查找文件(不区分大小写)
例:root@ubuntu:~# find /root -name Test.txt
/root/Test.txt
root@ubuntu:~# find /root -iname test.txt
/root/Test.txt
2.-perm按照文件权限来查找文件
例:-rw-r--r-- 1 root root 0 May 20 18:57 Test2.txt
root@ubuntu:~# find /root -perm 644
/root/Test2.txt
-perm +权限(一类用户匹配写权限就可以)
-perm -权限(所有类别用户满足写权限)
3.-user和-group:按照文件所属主和所属组来查找文件
例:root@ubuntu:~# find /root -user root
/root
/root/file
/root/cmd
/root/Test2.txt
...
4.-mtime -n +n:根据文件的更改时间来查找文件,-n表示文件更改时间到现在n天以内,+n表示文件更改时间到现在n天以前
例:-rw-r--r-- 1 root root 1490 May 16 05:08 file
root@ubuntu:~# find /root -mtime +2
/root/file
5.-nouser和-nogroup:该文件所属主在/etc/passwd中不存在和该文件所属的组在/ect、groups中不存在
6.-type 查找某种类型的文件,例如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件
例:
root@ubuntu:~# find /root -type f
/root/file
/root/cmd
/root/Test2.txt
...
7:-size n: [c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计算
-size +n或-size -n:大于或小于n的文件
例:
root@ubuntu:~# find /root -size -226
/root
/root/file
/root/cmd
/root/Test2.txt
...
8:-depth:在查找文件时,先查找当前目录中的文件,然后再在其子目录中查找
9:-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
10:-mount:在查找文件时不跨越文件系统mount点。
11:-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
12:-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。