15.每日一个Linux命令----find

描述:从指定的起始目录开始,递归的查找其各个子目录,查找知足条件的文件并对之采起相关的操做。shell

用法:find 起始目录 查找条件 执行操做ui

查找条件:code

-name filename  查找名为filename的文件递归

-iname                 不区分大小写进程

-perm                   按执行权限查找io

-user                     按文件属主来查找test

-group                   按组来查找效率

-uid n                     查找用户UID为n的全部文件;file

-gid n                      查找组GID为n的全部文件;搜索

-empty                    查找空文件

-mtime -n +n n        按文件更改时间来查找文件,-n指n天之内,+n指n天之前,n指n天之前的一天以内

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

-ctime  -n  +n    n     按文件建立时间来查找文件

-amin n                   查找n分钟前被访问的文件;注意:-n表示文件被访问时间距如今n分钟之内,+n表示文件被访问时间距如今n分钟之前;         

-cmin n                    查找n分钟前文件属性被修改

-mmin n                   查找n分钟前文件内容被修改

-nogrounp            查无有效属组的文件,即在/etc/group中不存在

-nouser                查无有效属组的文件,即在/etc/passwd中不存在

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

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

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

-depth                    使查完本目录后再进入子目录

-fstype                    查找位于某一文件系统中的文件,这些文件系统类型一般在/etc/fstab中

-mount                    查文件时不跨越文件系统mount点

-follow                    若是遇到符号连接文件,就跟踪连接所指的文件

-cpio                        对匹配的文件使用cpio命令,将他们备份到磁带当中

-prune                    忽略某个目录

-maxdepth              容许制定find搜索深刻到目录树的哪一级别

-mindepth               容许制定find搜索深刻到目录树的哪一级别

执行操做:

-print:                    find命令将匹配的文件输出到标准输出

-exec:                    find命令对匹配的文件执行该参数所给出的shell命令。相应命令形              式为‘command' { } \;注意{ }和\;之间的空格。

-ok:                      和-exec相同,在操做前要询问用户

逻辑运算符:

-a (and)

-o (or)

! (not)

示例:1. 查找/home(包含子目录)目录中,在24小时内被访问过的文件。

[root@share19 ~]# find /home -atime 0

2.查找/home(包含子目录)目录中,拥有者和用户组不存在的文件,并执行删除操做。

[root@share19 ~]# find /home -nouser -a -nogroup -exec rm -rf {} \;
[root@share19 ~]# find /home -nouser -a -nogroup -ok rm -rf{} \;

3.查找test目录中大小为零的文件并把它们移动到/tmp/zerobyte目录中。

[root@share19 ~]# find /test -type f -size 0 -exec mv {} /tmp/zerobyte \;

4.查找当前目录中权限为777的文件,并列出详细列表。

[root@share19 ~]# find . -type f -perm 777 -ls

5.xargs命令对匹配结果分批处理并只产生一个进程

比较一下两个命令的执行效率

[root@share19 ~]# find / -type f -exec ls -l {} \;
[root@share19 ~]# find / -type f |xargs ls -l
相关文章
相关标签/搜索