1 文件查找
# 查找命令所在位置 which ls ... ps: 一些命令的路径都被配置到了环境变量PATH里 # 根据文件属性查找文件(find)(可以给多个查找条件) 前戏: find 路径 命令 参数 共用参数: -a : 并且(默认) -o : 或者 例: [root@python test]# find ./ -size -30M -o -size +50M ./ ./txt ./txt2 1 按照文件名查找 -name"xxx" : 查找xxx文件 例: [root@python ~]# find /root/ -name "txt*" /root/txt2 /root/a/b/c/txt2 2 按照文件的创建时间来查找 -ctime : 按照创建时间查询 -mtime : 按照修改时间查询 -atime : 按照访问的时间查询 +7 : 7天以前创建 -7 : 7天以内创建 7 : 正好第7天前创建 例: # 3天以内创建 [root@python ~]# find /root/ -ctime -3 # 3天以前创建 [root@python ~]# find /root/ -ctime +3 3 按照文件属主、属组查找 -user : 属主 -group : 属组 例: [root@python ~]# find /root/ -user egon # 属主是egon的文件 /root/txt [root@python ~]# find /root/ -group test # 属组是test的文件 /root/txt 4 按照文件的大小查找 -size :大小 例: find /root/ -size +50M : 查询大于50M的文件 find /root/ -size 20M : 查询等于20M的文件 find /root/ -size -60M : 查询小于60M的文件 5 设置查询最高的目录层级/指定查找的目录深度(-maxdepth必须放在第一位) -maxdepth 层级数 例: [root@python ~]# find /root/ -maxdepth 3 -a -size +40M /root/txt2 [root@python ~]# find /root/ -maxdepth 6 -a -size +40M /root/txt2 /root/a/b/c/txt2 6 按照文件类型来查询 # 按照目录查询 -type d 例: [root@python ~]# find /root/ -type d # 按照普通文件来查询 -type f 例: [root@python ~]# find /root/ -type f # 查看设备文件 -type c 例: [root@python dev]# find /dev/ -type c # 文件类型 f # 普通 d # 目录 l # 链接 b # 快设备 c # 字符设备 s # 套接字 p # 管道文件 7 按照权限来查询 前戏: rw-r--r--: rw- : 所属用户 (6) r-- : 所属用户组 (4) r-- : 其他用户 (4) r(4) : 只读 w(2) : 只写 x(1) : 执行 chmod : 修改文件权限 chmod 755 文件路径 chown : 修改所属用户及用户组 chown 用户.用户组 文件路径 -perm 权限 : 按权限级别查找 例: [root@python test]# ll 总用量 122880 -r--r-----. 1 test user1 20971520 6月 16 17:33 txt -rw-r--r--. 1 root root 41943040 6月 16 17:33 txt1 -rwxr-xr-x. 1 root root 62914560 6月 16 17:33 txt2 [root@python test]# find ./ -perm 440 ./txt [root@python test]# find ./ -perm 644 ./txt1 ./txt2 8 处理查询结果 # 1 直接跟命令(有些命令不能使用,不推荐) 例: [root@python test]# find ./ -perm 755 -ls 202362858 0 drwxr-xr-x 2 root root 41 6月 16 17:59 ./ 134514204 61440 -rwxr-xr-x 1 root root 62914560 6月 16 17:33 ./txt2 # 2 exec(推荐) # {} : 代表前面查询出来的内容,相当于一个容器 -exec 命令 {} 路径 \; 例: find ./ -size +50M -exec cp {} /opt/ \; # 3 使用管道 # xargs是将前面命令执行的结果先用一个{}来保存,然后用{}取出来处理 | xargs -I {} 命令 {} 路径 例: find ./ -size +50M | xargs -I {} cp {} /mnt/