Linux中文件搜索命令which whereis locate find
which:查找命令的可执行文件,以及别名,依赖于PATH环境变量whereis:查找命令的可执行文件,以及命令的man帮助手册-b:只查找可执行文件-m:只查找帮助文档locate:查找系统中的文件,基于数据库查找yum install mlocate -y新装之后,需要构建数据库手工构建数据库 updatedb/var/lib/mlocate/mloca...
which:查找命令的可执行文件,以及别名,依赖于PATH环境变量
whereis:查找命令的可执行文件,以及命令的man帮助手册
-b:只查找可执行文件
-m:只查找帮助文档
locate:查找系统中的文件,基于数据库查找 yum install mlocate -y
新装之后,需要构建数据库 手工构建数据库 updatedb /var/lib/mlocate/mlocate.db
模糊查找,非实时查找,查找速度快
-b:只匹配基名
-c:统计有多少个符合条件的文件
find:实时查找工具,遍历指定的路径
实时查找,精确查找,查找速度慢
find [options] 查找的起始路径 查找条件 处理动作
查找起始路径:指定一个具体的起始路径,默认是当前目录
查找 选项 测试
文件名查找
-name "pattern" 支持通配符
从属关系
-user 属主 -group 属 -nouser 无属主 -nogroup无属 -gid -uid
文件类型 -type
f:普通文件 d:目录 l:链接文件 b:块设备文件 c:字符设备文件
s:套接字文件 p:管道文件
文件大小 k M G
-size
+ -
时间戳
以天 time
-atime -ctime -mtime
以分钟为单位min
-amin -cmin -mmin
权限:
-perm
/mode 9位权限位或关系
-mode 9位权限位与关系
逻辑运算
与 -a
或 -o
非 ! not
!A -a !B = !(A -o B )
!A -o !B = !(A -a B )
处理动作
默认 print
-ls:执行ls -l
-delete:删除文件
-fls file:将查找到的文件输入到一个文件中
-ok commond {} \;
-exec commond {} \;
| xargs commond
1. 查找/var目录属主为root,且属组为mail的所有文件
find /var -user root -a -group mail
2. 查找/usr目录下不属于root、bin或hadoop的所有文件
find /usr -not -user root -o -not -user bin -o -not -user hadoop
find /usr -not \( -user root -a -user bin -a -user hadoop \)
3. 查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件
find /etc -mtime -7 -a -not \( -user root -a -user hadoop \)
4. 查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件
find / -nouser -a -nogroup -a -atime -7
find / \( -nouser -o -nogroup \) -a -atime -7
5. 查找/etc目录下大于20K且类型为普通文件的所有文件
find /etc -size +20k -type f
6. 查找/etc目录下所有用户都没有写权限
find /etc -not -perm /222
7. 查找/etc目录下至少有一类用户没有执行权限的文件
find /etc -not -perm -111
8. 查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件
find /etc/init.d -perm -113
9. 查找当前目录下所有以.tar结尾的文件然后移动到指定目录/backup
find -name "*.tar" -exec mv {} /backup \;
10. 查找当前目录30天以前大于100M的LOG文件并删除
find -name "*.LOG" -mtime +30 -size +100M -exec rm -f {} \;
11. 将某目录下大于100k的文件移动至/tmp下。
find -size +100k -exec mv {} /tmp \;
更多推荐
所有评论(0)