文件查找(find)
1 find
简单的说,就是实时查找指定的内容或条件。特点:最新、最快、最准确。
用法:find [查找路径] [查找条件] [找到后进行的动作]
eg. find /etc/ -name "ipsec.conf" -print
2 常用查找方式
-name 按文件名称查找,可以使用通配符,如* ? [ ] [^ ]
-regex 使用正则表达式的方式匹配文件名
3,根据文件属主、属组查找
-user username 查找属主为username 的文件。
-group groupname 查找属组为groupname的文件。
-uid user ID 查找属主为指定UID号的文件。
-gid group ID 查找属组为指定GID号的文件。
-nouser 查找没有属主的文件。
-nogroup 查找没有属组的文件。
4,根据文件类型查找
-type type
-f 查找普通文件
-d 查找目录
-b 查找块设备文件
-c 查找字符设备文件
-p 查找管道文件
5,根据文件大小查找
-size [ + | - ] unit
eg. find /etc -size +1M 查找/etc目录下大于1M 的文件
6 根据时间来查找
-atime 访问时间
-ctime 改变状态的时间
-mtime修改的时间
(1)以天为单位
-mtime +n 查找n天以前修改过的文件,从n+1天开始算起
-mtime -n 查找当前时间之前的n天,n天以内的修改过的文件
(2)以分钟为单位
用法与依天为单位类似
eg.查找/etc 目录下7天以内访问过的文件
find /etc/ -atime -7
7 根据权限查找
-perm [ + | - ] MODE
+ MODE 任意一个权限满足都可以。
- MODE 必须包含全部MODE权限的文件才可以。
MODE 精确匹配权限为MODE的文件。
eg. find /etc/ -perm -222 查找/etc权限必须包含全部222权限的文件
8 查找到文件后的处理动作
- exec COMMAND { } \; 找到文件后对文件执行COMMAND命令。
-OK COMMAND { } \;找到文件后询问是否对文件执行COMMAND命令。
- print 输出到屏幕(默认操作)。
- ls 打印到屏幕上,类似于ls -l。
-fls filename 查找到的内容保存至filename文件中。
Xargs 将前面结果分批次给后面的命令作为执行的参数。
复制/etc 目录下所有以.conf结尾的文件到/shell
分批对/etc 目录下所有以.conf结尾的文件执行 ls 命令