您的位置:首页 > 运维架构 > Linux

linux find详解

2017-01-28 11:11 253 查看
19、在文件树种查找文件,并作出相应的处理find详细信息
find -atime -2查找指定时间内修改过的文件
find /opt/soft/test/ -perm 777按照目录或文件的权限来查找文件

find . -type f -name "*.log"按类型查找

20、find命令之exec详细信息

-exec  参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑
到各个系统中分号会有不同的意义,所以前面加反斜杠。{}   花括号代表前面find查找出来的文件名。

find . -type f -exec ls -l {} ;  find命令匹配到了当前目录下的所有普通文件,并在-exec选项中使用ls -l命令将它们列出。

find . -name "*.log" -mtime +5 -ok rm {} ;  find命令在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。

find /etc -name "passwd*" -exec grep "root" {} ; 使用grep命令。find命令首先匹配所有文件名为“ passwd*”的文件,例如passwd、passwd.old、passwd.bak,然后执行grep命令看看在这些文件中是否存在一个root用户。

21、find命令之xargs 详细信息

xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

find . -type f -print | xargs file  查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件

find / -name "core" -print | xargs echo "" >/tmp/core.log  在整个系统中查找内存信息转储文件(core
dump) ,然后把结果保存到/tmp/core.log 文件中

22、find参数详解

    1、使用name      

find ~ -name “*.log” -print

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

find . -name “*.log” -print

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

find . -name “[A-Z]*” -print

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

find /etc -name “host*” -print

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

find ~ -name “*” -print 或find . -print

要想让系统高负荷运行,就从根目录开始查找所有的文件。

find / -name “*” -print      

2、用perm选项

按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。

还有一种表达方法:在八进制数字前面要加一个横杠-,表示都匹配,如-007就相当于777,-005相当于555,

3、如果在查找文件时希望忽略某个目录,因为你知道那个目录中没有你所要查找的文件,那么可以使用-prune选项来指出需要忽略的目录。

find test -path "test/test4" -prune -o -print

-path “test” -prune -o -print 是 -path “test” -a -prune -o -print 的简写表达式按顺序求值, -a 和 -o 都是短路求值,与 shell 的 && 和 || 类似如果

这个表达式组合特例可以用伪码写为:

if -path “test” then

-prune

else

-print

find test ( -path test/test4 -o -path test/test3 ) -prune -o -print避开多个文件夹

4、使用user和nouser选项

find ~ -user peida -print在$HOME目录中查找文件属主为pied的文件

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

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

希望在系统根目录下查找更改时间在5日以内的文件,可以用:

find / -mtime -5 -print

为了在/var/adm目录下查找更改时间在3日以前的文件,可以用:

find /var/adm -mtime +3 -print

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

find -newer log2012.log ! -newer log2017.log查找更改时间比文件log2012.log新但比文件log2017.log旧的文件

7、使用type选项

find /etc -type d -print在/etc目录下查找所有的目录

find . ! -type d -print在当前目录下查找除目录以外的所有类型的文件

8、使用size选项

find . -size +1000000c -print在当前目录下查找文件长度大于1 M字节的文件

9、使用depth选项

在使用find命令时,可能希望先匹配所有的文件,再在子目录中查找。使用depth选项就可以使find命令这样做。这
样做的一个原因就是,当在使用find命令向磁带上备份文件系统时,希望首先备份所有的文件,其次再备份子目录中
的文件。

find / -name "CON.FILE" -depth -printfind命令从文件系统的根目录开始,查找一个名为CON.FILE的文件。

10、使用mount选项

find . -name "*.XC" -mount -print从当前目录开始查找位于本文件系统中文件名以XC结尾的文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: