Fork me on GitHub
瞬间的惊奇真是种确幸,每种确幸都是支玄妙的俳句。吊桥抬起,退回到内心幽静的花园,邂逅的还是那种熟悉的冷冷清清又轰轰烈烈的美妙质感。这真令人欢喜。

shell编程四剑客之find

 

find工具主要用于操作系统文件、目录的查找、语法格式:

   find path   option [ -print ] [ -exec -ok  command ] {} \; 

其中-exec和xargs含义相似,只不过用法不同。 xargs前需加管道符“|”

其中option常用参数详解如下:

-name filename   查找名为filename的文件。

-type  b/d/c/p/l/f    查找块设备、目录、字符设备、管道、符号链接、普通文件。

-size n[c]       查找长度为n块【或n字节】的文件。

-perm         按文件权限来查找。

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

-group              按文件属组来查找。

-nouser       查找无效属主的文件。

-nogroup       查找无效属组的文件。

-mtime -n +n            按照文件更改时间来查找文件 ,-n是指n天以内。+n是指n天以前。

-atime -n +n           按照文件访问时间来查找文件 。

-ctime -n +n      按照文件创建时间来查找文件。

-mmin -n +n             按照文件更改时间来查找文件 ,-n是指n分钟以内。+n是指n分钟以前。

-amin -n +n            按照文件访问时间来查找文件 。

-cmin -n +n       按照文件创建时间来查找文件。

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

-depth          查找在进入子目录前先行查找完本目录。
-fstype                 查找更改时间比f1新但比f2旧的文件。
-mount       查找文件时不跨越文件系统mount点。
-prune        忽略某个目录。
-maxdepth      查找目录级别深度。
-cpio        查找位于某一类型文件系统中的文件。
-follow       跟踪符号链接文件。

(1)find -name
find /home -name "*.log" 查找home目录下以log结尾的文件。
find /home -name "[A-Z].*" 查找home目录以大写字母开头的文件。
find /home -name "nginx.*" 查找home目录下以nginx开头的文件。

(2) find -type
find /home -type d 查找home目录下的文件夹
find /home ! -type d        查找home目录下的非文件夹
find /home -type l             查找home目录下的链接文件
find /home -type d | xargs chmod 755 -R                  查找home目录下的文件夹并修改权限为755。
find /home -type f  | xargs  chown root:root -R          查找home目录下的文件并修改属组属主为root。

(3)find -size

find /home -size -1M 查找home目录下小于1M的文件
find  /home -size +1M        查找home目录下大于1M的文件
find  /home -size    1M        查找home目录下等于1M的文件

(4)find -perm

find /home -perm 755 查找home目录下权限为755的文件。
find   /home -perm -007      与-perm 777相同  查找home目录下权限为777的文件。
find   /home -perm  +655      查找home目录下权限为655以上的文件。

(5) find -mtime

find /home -mtime -100 -name "*.txt" 查找home目录下100天以内的文件。
find  /home -mtime  +100 -name "*.txt"              查找home目录下100天以前的文件。
find  /home -amin  -30 -name "*.txt"                  查找home目录下30min以内被访问文件。
find  /home -ctime  -100 -name "*.txt"              查找home目录下100天以内创建的文件。
find  /home -cmin  -100 -name "*.txt"              查找home目录下100min以内创建的文件。

(6) find

find /home -type f -name "*.log" -size +100k -exec cp {} /tmp/ \;
查找home目录下以log结尾,大于100k的文件并复制到tmp目录下。

find /home -type f -name "*.log" -perm 655 -size +200k | xargs rm -rf
查找home目录下以log结尾,大于100k,权限为655的文件并删除。

find /home -type f -name "*.log" -mtime +30 -size +100M -exec mv {} /tmp/ \;
查找home目录下30天以前,以log结尾,大于100M的文件并移动到tmp目录下

 

posted @ 2019-05-10 15:56  干嘛那么贪睡  阅读(168)  评论(0)    收藏  举报