find [寻的目录] [表示式]
  寻文件工具
  find 是高级的寻文件工具,可不像 whereis 那么“阳春白雪”。但也因为它太高级了,复杂到很多人用不熟练。我们尽量只举简单的例子。
  最简单的格式如下:
  find / -name my* -print
  这个意思是请它从渶底层的主目录开始,出文件名是 my 开头的文件,把它显示出来。-print 选项是显示,您可把它当做固定要加上的项目。
  但它还可以用时间来,例如:
  find /usr -atime 3 –print
  会从 /usr 目录开始往下,最近3天之内存取过的文件。
  find /usr -ctime 5 –print
  会从 /usr 目录开始往下,最近5天之内修改过的文件。
  find /doc -user jacky -name 'j*' –print
  会从 /doc 目录开始往下,jacky 的、文件名开头是 j的文件。
  find /doc \( -name 'ja*' -o- -name 'ma*' \) –print
  会从 /doc 目录开始往下,寻文件名是 ja 开头或者 ma开头的文件。
  find /doc -name '*bak' -exec rm {} \;
  会从 /doc 目录开始往下,到凡是文件名结尾为 bak的文件,把它删除掉。-exec 选项是执行的意思,rm 是删除命令,{ } 表示文件名,“\;”是规定的命令结尾。
    find / -amin -10 # 查在系统中最后10分钟访问的文件
    find / -atime -2 # 查在系统中最后48小时访问的文件
    find / -empty # 查在系统中为空的文件或者文件夹
    find / -group cat # 查在系统中属于groupcat的文件
    find / -mmin -5 # 查在系统中最后5分钟里修改过的文件
    find / -mtime -1 #查在系统中最后24小时里修改过的文件
    find / -nouser #查在系统中属于作废用户的文件
    find / -user fred #查在系统中属于FRED这个用户的文件
    下面的列表就是对find命令所可以指定文件的特征进行查的部分条件。在这里并没有列举所有的查条件,参考有关Linux有关书籍可以知道所有find命令的查函数。
  -amin n
  查系统中最后N分钟访问的文件
  -atime n
  查系统中最后n*24小时访问的文件
  -cmin n
  查系统中最后N分钟被改变状态的文件
  -ctime n
  查系统中最后n*24小时被改变状态的文件
  -empty
  查系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹
  -false
  查系统中总是错误的文件
  -fstype type
  查系统中存在于指定文件系统的文件,例如:ext2 .
  -gid n
  查系统中文件数字组 ID 为 n的文件
  -group gname
  查系统中文件属于gnam文件组,并且指定组和ID的文件
出空目录
find /path -depth -type d -empty

字节为0的文件
find /path -depth -type f -empty

出具体文件名的文件
find /path -name name_of_file

出特定扩展名的文件
find /path -name "*.given_extension"

根据权限及指定扩展名寻文件
find /path -name '*.txt' -perm 644

出指定权限的文件
find /path -perm -permision_bits(权限位)

出指定文件名(任意扩展名的文件)
find /path -name 'given_name.*'

find根据时间寻
用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。
各参数说明
-amin n
查系统中最后N分钟访问的文件
-
atime n
查系统中最后n*24小时访问的文件
-cmin n
查系统中最后N分钟被改变文件状态的文件
-ctime n
查系统中最后n*24小时被改变文件状态的文件
-mmin n
查系统中最后N分钟被改变文件数据的文件
-mtime n
查系统中最后n*24小时被改变文件数据的文件
更改时间在5日以内的文件
find /path -mtime -5

出并删除文件
find /path -name "core.*" -type f -print | xargs /bin/rm -f
====================================================
find pathname -options [-print -exec -ok]

pathname find命令所查的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
 -print find命令将匹配的文件输出到标准输出。
 -exec find命令对匹配的文件执行该参数所给出的shell命令。
 相应命令的形式为'command'{} \;,注意{}和\;之间的空格。
 -ok和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行

文件状态判断:

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


出3天“以前”被修改过的文档
# find /var/log/ -mtime +3 -type f -print

出3天“内”被修改过的文档
# find /var/log/ -mtime -3 -type f -print

出第3天被修改过的文档.
# find /var/log/ -mtime 3 -type f -print
或这样写:
#find /var/log/ -mtime +2 -mtime -4 -type f -print

注:
访问过用amin,修改过用mmin,文件状态改变过用cmin
精确到分钟的用amin,mmin,cmin,精确到天的用atime,mtime,ctime


出指定扩展名后修改扩展名
find /path -type f | xargs rename .baksh ".sh"
Find命令的控制选项说明:
    Find命令也提供给用户一些特有的选项来控制查***作。下表就是我们总结出的最基本,最常用的find命令的控制选项及其用法。
  选项
  用途描述
  -daystart
  .测试系统从今天开始24小时以内的文件,用法类似-amin
  -depth
  使用深度级别的查过程方式,在某层指定目录中优先查文件内容
  -follow
  遵循通配符链接方式查; 另外,也可忽略通配符链接方式查询
  -help
  显示命令摘要
  -maxdepth levels
  在某个层次的目录中按照递减方法查
  -mount
  不在文件系统目录中查, 用法类似 -xdev.
  -noleaf
  禁止在非UNUX文件系统,MS-DOS系统,CD-ROM文件系统中进行最优化查
  -version
  打印版本数字
    使用-follow选项后,find命令则遵循通配符链接方式进行查,除非你指定这个选项, 否则一般情况下find命令将忽略通配符链接方式进行文件查。
    -maxdepth选项的作用就是限制find命令在目录中按照递减方式查文件的时候搜索文件超过某个级别或者搜索过多的目录,这样导致查速度变慢,查花费的时间过多。例如,我们要在当前(.)目录技巧子目录中查一个名叫fred的文件,我们可以使用如下命令: find.-maxdepth 2 -namefred
    假如这个fred文件在./sub1/fred目录中,那么这个命令就会直接定位这个文件,查很容易成功。假如,这个文件在./sub1/sub2/fred目录中,那么这个命令就无法查到。因为前面已经给find命令在目录中最大的查询目录级别为2,只能查2层目录下的文件。这样做的目的就是为了让find命令更加精确的定位文件,如果你已经知道了某个文件大概所在的文件目录级数,那么加入-maxdepth n 就很快的能在指定目录中查 成功。
linux所有命令都无法使用
使用混合查方式查文件
    find命令可以使用混合查的方法,例如我们想在/tmp目录中查大于100000000字节并且在48小时内修改的某个文件,我们可以使用-and来把两个查选项链接起来组合成一个混合的查方式。find /tmp -size +10000000c -and -mtime +2
    学习过计算机语言的朋友都知道,在计算机语言里,使用and ,or 分别表示“与”和“或” 的关系。在Linux系统的查命令中一样通用。 还有这样的例子, find / -user fred-or-usergeorge我们可以解释为在/tmp目录中查属于fred或者george这两个用户的文件。在find命令中还可以使用 “非”的关系来查文件,如果我们要在/tmp目录中查所有不属于panda的文件,使用一个简单的 find /tmp ! -user panda 命令就可以解决了。很简单!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。