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

非 Y 不嫁゛ 提交于 2020-03-02 10:29:09

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

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

查找条件:

-name filename  查找名为filename的文件

-iname                 不区分大小写

-perm                   按执行权限查找

-user                     按文件属主来查找

-group                   按组来查找

-uid n                     查找用户UID为n的所有文件;

-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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!