Linux查找–find命令

find命令的格式
find  pathname  -options  [ -print -exec -ok ...] pathname #是find命令所查找的目录路径,例如.表示当前目录,/表示根目录 -print #表示find命令将匹配的文件输出到标准输出中 -exec #表示find命令对匹配的文件执行该参数给出的shell命令。相应命令的形式为 ‘cmd’ {} \; -ok #它的做用和-exec同样,只是须要用户交互,更安全

find命令的选项linux

-name #按照文件名查找文件 -perm #按照权限查找文件 -prune #使find命令不在当前指定的目录中查找,若是同时使用-depth选项,那么-prune将被find命令忽略 -user #按照文件属主来查找文件 -group #按照文件数组来查找文件 -mtime -n +n #按照文件的更改时间来查找文件 -n 表示今后刻算起,文件的更改是在n天之内 +n 表示文件的更改时间是在n天之前 find命令还有-atime和-ctime选项,和-mtime选项的时间规定类 似 -nogroup #查找无有效属组的文件,即该文件所属的组在/etc/groups中不存在 -nouser #查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在 -newer file1 ! file2 #查找更改时间比file1新但比file2旧的文件 -type b:表示块设备文件 block d:表示目录 directory c:表示字符设备文件 char p:表示管道文件 pipe l:表示符号连接文件 link f:表示普通文件 file -depth #在查找文件时,首先查找当前目录中的文件,而后再在其子目录中查找 -fstype #表示查找位于某一类型文件系统中的文件,这些文件系统类型一般能够在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息 -mount #表示在查找文件时不跨越文件系统的mount点 -follow #表示若是find命令遇到符号连接文件,就跟踪至连接所指向的文件 -cpio #表示对匹配的文件使用cpio命令,将这些文件备份至磁带设备中

find示例:shell

一、在logs目录下查找更改时间在5日之前的文件并删除它们 find /logs -mtime +5 -exec rm {} \;
二、在当前目录中查找以.log结尾、更改时间在5日以上的文件,并删除,但在删除前给出提示 find . -name “*.log” -mtime +5 -ok rm {} \;
三、先用find命令匹配全部文件名为”passwd*”的文件,而后执行grep看看这些文件中是否存在一个sam的字符串 find / -name "passwd*" -exec grep "sam" {} \;
四、查找当前用户主目录下的全部文件 find ~
五、查找当前目录下644权限的文件 find . -perm 644
六、查找系统当中全部长度为0的普通文件,并列出它们的完整路径 find / -type f -size 0 -exec ls -l {} \;
七、查找/var/log目录中更改时间在7日之前的普通文件,并在删除以前进行提示 find /var/log -type f -mtime +5 -ok rm {} \;
八、查找当前目录中全部属于root组的文件 find . -group root -exec ls -l {} \;
九、find命令将列出目录中访问时间在7日之内且含有数字后缀的admin.log文件 find . -name "admin.log[0-9]*" -atime -7 -exec ls -l {} \;

用xargs来配合find工做数组

在使用find命令的-exec选项处理匹配到的文件时,find命令将全部匹配到的文件一块儿传递给exec执行。但有些系统对传递给exec的命令长度是有限制的,这样,在find命令运行几分钟以后,就会出现溢出错误。错误信息一般是”参数列太长”或”参数列溢出”。这就是xargs命令的用户所在,特别是与find命令一块儿使用 find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是所有,不像-exec选项那样。这样它就能够先处理最早获取的那一部分文件,而后是下一批,而且如此继续下去。
查找root下面的每一个文件,而后使用file查看文件的类别 find /root/ -type f | xargs file
查找root下面的777权限的文件,若是找到,都改成644权限 find /root -perm 777 | xargs chmod 644
查找系统中的全部文件,并过滤出文件中带有rmt的文件
find / -type f | xarfs grep rmt grep -rl rmt / #也能够 r表明递归,l表明只列出匹配的文件

更详细强大的find实例 
1、使用name选项安全

一、在当前目录及子目录中查找全部的*.txt文件 find . -name "*.txt"
二、在当前目录及子目录中查找一个大写字母开头的文件 find . -name "[A-Z]*"
三、想在/etc目录中查找文件名以host开头的文件 find /etc -name "host*
四、查找$HOME目录中的文件 find ~
五、想要让系统高负荷运行,从根目录下面查找全部文件 find / -name "*"
六、在当前目录中查找文件名以两个小写字母开头,跟着是两个数字,最后是.txt的文件 find / -name "[a-z][a-z][0-9][0-9].txt"

2、使用perm选项ruby

找出当前文件夹下权限为755的文件 find . -perm 755

3、使用user和mount选项bash

一、在宿主目录下查找属主为sam的文件 find ~ -user sam | xargs ls -l
二、查找已经删除用户之前的文件 find / -nouser sam

4、按照更改时间或访问时间等查找文件app

-:限定更改时间在距今n日之内的文件 +:限定更改时间是在n日之前的文件 一、在根目录下查找更改时间为最近5日的文件 find / -mtime -5 二、在根目录下查找更改时间为3日之前的文件 find / -mtime +3

5、查找比某个文件新或旧的文件url

一、查找比/root/a/a文件新的文件 find / -newer /root/a/a 二、查找比wanglei文件新的文件 find / -newer wanglei 在进行系统维护时,咱们常常遇到一种状况,即发现磁盘在不停地发生写现象,这时候咱们要定位这个正在写的文件,能够选择创建一个文件,好比test,而后用如下命令找出这个频繁写磁盘的文件(最好带上一些限制大小的参数来精肯定位) touch new1 touch new2 find / -newer new1 -o -path "/proc" -prune 找出比new1新的文件,因为/proc目录中的文件一直在变化,因此能够排除

6、使用type选项spa

一、在/etc目录下查找全部的目录 find /etc -type d | xargs file
二、在当前目录下查找除目录之外的全部类型的文件 find /etc ! -type d | xargs file
三、在/etc/目录一下查找全部的符号连接文件 find /etc -type l | xargs file 

8、使用size选项.net

dd if=/dev/zero of=/root/100M bs=100M count=1 dd if=/dev/zero of=/root/10M bs=10M count=1 dd if=/dev/zero of=/root/30M bs=30M count=1
一、查找当前目录下大于5M的文件 find . -size +5M
二、查找当前目录下大与20M的文件 find . -size +20M
三、查找当前目录下大与40M的文件 find . -size +40M

Linux find 命令用法总结  http://www.linuxidc.com/Linux/2015-04/116854.htm

Linux下的文件查找命令——find  http://www.linuxidc.com/Linux/2016-05/131826.htm

Linux下查找文件find命令  http://www.linuxidc.com/Linux/2014-10/108575.htm

文本查找利器find的使用 http://www.linuxidc.com/Linux/2014-03/97559.htm

功能强大的find命令 http://www.linuxidc.com/Linux/2014-01/95236.htm

Linux系统find命令详解 http://www.linuxidc.com/Linux/2014-06/103232.htm

Linux文件搜索命令 find  http://www.linuxidc.com/Linux/2016-11/137267.htm

5分钟学会find命令 http://www.linuxidc.com/Linux/2016-11/137051.htm

find命令基本使用一览 http://www.linuxidc.com/Linux/2016-07/133273.htm

Linux基础知识:find命令的使用 http://www.linuxidc.com/Linux/2016-09/134947.htm

本文永久更新连接地址http://www.linuxidc.com/Linux/2017-01/140011.htm

相关文章
相关标签/搜索