Linux命令——find使用

Linux命令——find使用

find常用格式

1
2
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find [-H | -L | -P] [-EXdsx] -f path [path ...] [expression]

参数详解:

  1. 使用-name按名称查找

    文件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用。可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.log的文件,使用~作为’pathname’参数,波浪号~代表了你的$HOME目录。

    1
    find ~ -name "*.log" -print

    想要在当前目录及子目录中查找所有的’*.log’ 文件,可以用:

    1
    find . -name "*.log" -print

    想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:

    1
    find . -name "[A-Z]*" -print

    想要在/etc目录中查找文件名以host开头的文件,可以用:

    1
    find /etc -name "host*" -print

    想要查找$HOME目录中的文件,可以用:

    1
    find ~ -name "*" -print 或find . -print
  2. 使用-perm按文件权限查找

    最好使用八进制的权限表示法。如在当前目录下查找文件权限位为755的文件,即文件属主可以读、写、执行,其他用户可以读、执行的文件,可以用:

    1
    find . -perm 755 -print
  3. 使用-user username按文件所属用户查找

    在etc目录中查找文件属主为postgres的文件

    1
    find /etc -user postgres -print
  4. 使用-nouser按文件的属主在是否在/etc/passwd中没有有效账户的查找

    为了查找属主帐户已经被删除的文件,可以使用-nouser选项。在/etc目录下查找所有的这类文件

    1
    find /etc -nouser -print
  5. 使用-group groupname按文件所属组查找

    在etc目录中查找文件属组为postgres的文件

    1
    find /etc -group postgres -print
  6. 使用-nogroup查找没有有效所属用户组的所有文件

    从文件系统的etc目录处查找这样的文件:

    1
    find /etc -nogroup -print
  7. 使用-mtime按文件更改时间来查找

    1
    find /etc -mtime  -n +n -print   #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
  8. 使用-atime按文件访问时间来查找

    1
    find /etc -atime -n +n -print   #按文件访问时间来查GIN: 0px">
  9. 使用-ctime按文件创建时间来查找

    1
    find /etc -ctime -n +n -print   #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
  10. 使用-newer按更改时间进行查找

    1
    find /etc -newer f1 !f2 -print     #查更改时间比f1新但比f2旧的文件
  11. 使用-type按文件类型进行查找

    1
    find /etc -type b/d/c/p/l/f -print   #查是块设备、目录、字符设备、管道、符号链接、普通文件
  12. 使用-size按文件长度进行查找

    1
    find /etc -size n[c] -print   #查长度为n块[或n字节]的文件
  13. 使用-depth按在进入子目录前先行查完本目录

    1
    find /etc -depth -print    #使查找在进入子目录前先行查找完本目录
  14. 使用-fstype按更改时间进行查找

    1
    find /etc -fstype -print         #查更改时间比f1新但比f2旧的文件
  15. 使用-mount说明查找文件时是否不跨越文件系统mount点

    1
    find /etc -mount -print #查文件时不跨越文件系统mount点
  16. 使用-follow说明遇到符号链接文件就跟踪链接所指的文件

    1
    find /etc -follow -print
  17. 使用-cpio %查找位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到

    1
    find /etc -cpio % -print
  18. 使用-prune可忽略某个目录

    如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略。如果希望在etc目录下查找文件,但不希望在test/test3目录下查找,可以用:

    1
    find etc -path "test/test3" -prune -o -print