目录
grep: 文件内容过滤
用法:grep 'string' 目标文件
示例:
[root@qf-2 ~]# grep 'root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
which: 查找命令
示例:
[root@qf-2 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
whereis: 查询位置
find: 文件查找,针对文件名
用法: find 路径 条件 跟条件相关的操作符 [-exec 动作]
注意:默认不写路径时查找的是当前路径.
按文件名
示例:
[root@qf-2 ~]# find / -name "*.txt"
按文件大小
示例:
[root@qf-2 ~]# find /root -size 10M 大小等于10M
[root@qf-2 ~]# find /root -size -10M 大小小于10M
[root@qf-2 ~]# find /root -size +10M 大小大于10M
[root@qf-2 ~]# find /root -size +3M -o -size -5M 大于3M或小于5M的文件
[root@qf-2 ~]# find /root -size +3M -a -size -5M 大于3M并小于5M的文件
按时间查找
天:
-atime 访问时间
-mtime 改变时间 内容修改时间会改变
-ctime 修改时间 属性修改时间会改变
分钟:
-amin -mmin -cmin
+n:之前 -n:之内
示例:
[root@qf-2 ~]# find /home -atime +1 访问时间1天之前
[root@qf-2 ~]# find /home -mtime +5 内容修改5天之前
[root@qf-2 ~]# find /home -ctime -5 属性修改5天之内
按文件类型 -type [fdlb..]
[root@qf-2 ~]# find /home -type f f普通文件
[root@qf-2 ~]# find /home -type d d目录文件
[root@qf-2 ~]# find /home -type l l链接
[root@qf-2 ~]# find /home -type b b块设备
按文件权限 -perm 权限
[root@qf-2 ~]# find . -perm 644 查找权限为644的文件
[root@qf-2 ~]# find /usr/bin -perm -4644 查找权限为644而且为suid的文件
[root@qf-2 ~]# find /usr/bin -perm -2644 查找权限为644而且为sgid的文件
[root@qf-2 ~]# find /usr/bin -perm -1644 查找权限为644而且为T权限的文件
找到后处理的动作
[root@qf-2 ~]# find /root -name "a*" -print 打印
[root@qf-2 ~]# find /root -name "dsf*f" -exec mv {} /root \; exec命令对之前查找出来的文件做进一步操作
[root@qf-2 opt]# touch test-{1..10} && mkdir test1
[root@qf-2 opt]# ls
test1 test-1 test-10 test-2 test-3 test-4 test-5 test-6 test-7 test-8 test-9
[root@qf-2 opt]# find /opt -name "test*" -exec rm -rf {} \;
[root@qf-2 opt]# ls
-exec:参数是一个一个传递的,传递一个参数执行一次命令。
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
===============
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好;
2、exec 格式麻烦,必须有 {} \;