Linux中的find命令

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命令,将这些文件备份到磁带设备中。

原文地址:https://www.cnblogs.com/Blog-day/p/5514441.html