部分find命令使用

linux中的文件查找远远比windows中文件查找要强大的多,并且是更加的迅速,如下是我经过阅读网上的文档整理了一部分linux中文件查找find的命令,及其命令含义解释。linux

一.命令格式: shell

    find pathname -options [-print -exec -ok ...] vim

二.命令功能:windows

    用于在文件树种查找文件,并做出相应的处理(可能访问磁盘)安全

三.命令参数含义:ide

pathname: find命令所查找的目录路径。例如用.来表示当前目 录,用/来表示系统根目录。 spa

-print: find命令将匹配的文件输出到标准输出。 orm

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{   }和\; 之间的空格。  blog

-ok: 和-exec的做用相同,只不过以这种更为安全的模式来执行该参数所给出的shell命令,在执行每个命令以前,都会给出提示,让用户来肯定是否执行。文档

四.命令选项:

-name   按照文件名查找文件。

wKioL1c9fgWhnuADAABDQMaYhGA941.png

-perm   按照文件权限来查找文件。

wKioL1c9ezPzb6TnAADHmHsvxXQ101.png-prune  使用这个选项可使find命令不在当前指定的目录中查找,若是同时使用-depth选项,那么                -prune将被find命令忽略。 

-user   按照文件属主来查找文件。

-group 按照文件所属的组来查找文件。

wKioL1c9fsWzJHrcAAA7oTTMjBA402.png

-mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距如今n天之内,+ n表示文件更改时间距如今n天之前。find命令还有-atime和-ctime 选项,但它们都和-m time 选项相同。 

[root@localhost class_1]# ls
cmd  file  kk  kk2  test  TEST.c
[root@localhost class_1]# vim TEST.c 
[root@localhost class_1]# gcc -o test TEST.c 
[root@localhost class_1]# ./test 
change world.
linux
[root@localhost class_1]# find . -amin -10 //查找在系统最后10分钟访问的文件
.
./test
./TEST.c
./cmd
[root@localhost class_1]# find . -atime -2   //查找在系统最后48小时访问的文件
.
./test
./TEST.c
./kk2
./cmd
[root@localhost class_1]# find . -mmin -5   //查找在系统在最后5分钟修改过的文件
.
./test
./TEST.c
./cmd
[root@localhost class_1]# find . -mtime -5   //查找系统在最后5小时修改过的文件
.
./.file
./test
./TEST.c
./kk2
./kk2/test.c
./kk
./file
./cmd
[root@localhost class_1]# find . -cmin -5 //查找在系统在最后5分钟被改变状态的文件
.
./test
./TEST.c
./cmd
[root@localhost class_1]# find . -ctime -1//查找在系统在最后24小时被改变状态的文件
.
./test
./TEST.c
./cmd

//文件状态判断:

//-mtime: 指定时间文件内容被修改过
//-ctime: 指定时间文件权限被修改过
//-atime: 指定时间文件被读取过

-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。 

-nouser   查找无有效属主的文件,即该文件的属主在/etc/ passwd中不存在。

[root@localhost home]# ll
total 12
drwx------.  4 curry curry 4096 May 19 13:32 curry
drwx------. 27 jf    jf    4096 May 18 22:47 jf
drwx------. 35 xjf   xjf   4096 May 19 13:29 xjf  
[xjf@localhost home]$ ll
总用量 8
drwx------. 27 jf  jf  4096 5月  18 22:47 jf
drwx------. 35 xjf xjf 4096 5月  19 13:29 xjf   
[root@localhost ~]# find / -nouser           //查找系统当中做废用户的文件
/var/spool/mail/curry
find: `/proc/2531/task/2531/fd/5': No such file or directory
find: `/proc/2531/task/2531/fdinfo/5': No such file or directory
find: `/proc/2531/fd/5': No such file or directory
find: `/proc/2531/fdinfo/5': No such file or directory

-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。

-type 查找某一类型的文件,诸如:

    b - 块设备文件。 

    d - 目录。 

    c - 字符设备文件。 

    p - 管道文件。 

    l - 符号连接文件。

    f - 普通文件。 

wKioL1c9gDWwfTDlAACwnGMevnY471.png

-size n:[c] 查找文件长度为n块的文件,带有c时表式文件长度以字节计。

[root@localhost test]# cd Test_1/
[root@localhost Test_1]# ll
total 12
-rwxr-----. 1 jf   jf    347 May 14 15:58 a.c
-rwx-wx-wx. 1 root root 4691 May 14 15:58 a.exe
[root@localhost /]# find / -size 4691c  //查找大小为4691字节的文件

//-size表示文件大小,c表示字节,还有k,M,G

wKiom1c8PKWTsDNgAABfATeG0uY145.png

[root@localhost /]# find / -size +20000000c //查找文件大小大于20000000字节的文件

//+表示大于前面这个数的文件,-表示小于前面这个数的文件

wKiom1c8PcbgR_3EAAFkV7jp4lg508.png

[root@localhost class_1]# ll -al
total 44
drwxrwxr-x. 3 xjf xjf  4096 May 13 21:45 .
drwxrwxr-x. 8 xjf xjf  4096 May 14 23:04 ..
-rw-rw-r--. 1 xjf xjf 15280 May 13 21:45 cmd
-rw-rw-r--. 1 xjf xjf   290 May 13 21:11 file
-rw-r--r--. 1 xjf xjf     0 May 13 20:44 .file
-rw-rw-r--. 1 xjf xjf     0 May 13 21:12 kk
drwxrwxr-x. 2 xjf xjf  4096 May 13 20:49 kk2
-rwxrwxr-x. 1 xjf xjf  4682 May 13 21:23 test
-rw-rw-r--. 1 xjf xjf    66 May 13 21:23 TEST.c
[root@localhost class_1]# find . -empty    //查找空文件
./.file
./kk

-depth:在查找文件时,首先查找当前目录中的文件,而后再在其它目录中查找。 

wKiom1c9gMjgmUPoAAA_7OgZ3a4220.png

-maxdepth: 在某个层次的目录中按照递减方法查找

wKiom1c9gYnTeMA6AABw7dBPKIA269.png

-maxdepth选项的做用就是限制find命令在目录中按照递减方式查找文件的时候搜索文件超过某个级别或者搜索过多的目录,这样致使查找速度变慢,查找花费的时间过多。例如,咱们要在当前.目录子目录中查找一个名叫fred的文件,咱们可使用以下命令
find . -maxdepth 2 -name fred
假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查找很容易成功。假如,这个文件在./sub1/sub2 /fred目录中,那么这个命令就没法查找到。由于前面已经给find命令在目录中最大的查询目录级别为2,只能查找2层目录下的文件。这样作的目的就是为了让find命令更加精确的定位文件,若是你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查找成功。

-fstype:查找位于某个类型文件系统中的文件,这些文件系统类型一般能够在配置文件/etc/fstab中

               找到,该配置文件中包含了本系统中有关文件系统的信息。 

-mount:在查找文件时不跨越文件系统mount点。 

-follow:若是find命令遇到符号连接文件,就跟踪至连接所指向的文件。 

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

哦(you)千(need)呐(weight)t_0012.gif

相关文章
相关标签/搜索