1.find查找概述 为什么要有文件查找,因为很多时候我们可能会忘了某个文件所在的位置,此时就需要通过find来查找。 find命令可以根据不同的条件来进行查找文件,例如:文件名称、文件大小、文件修改时间、属主属组、权限、等等方式。同时find命令是Linux下必须掌握的。
*find 命令的基本语法如下*
命令
路径
选项
表达式
动作
find
[path…]
[options]
[expression]
[action]
查找
地区
妹纸
18-25岁
约?
2.find查找示例 *以下列出所有find常用的选项*
1.find名称查找 1 2 3 4 5 6 7 8 9 10 11 touch /etc/sysconfig/network-scripts/{ifcfg-eth1,IFCFG-ETH1}[root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~]
2.find大小查找 1 2 3 4 5 6 7 8 [root@lqz ~] [root@lqz ~] [root@lqz ~]
3.find类型查找 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~]
4.find时间查找 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] find /backup/ -iname "*.bak" -mtime +7 -delete find /backup/ -iname "*.bak" -mtime +90 -delete
5.find用户查找 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~]
6.find权限查找 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~]
*2.find动作处理,比如查找到一个文件后,需要对文件进行如何处理, find的默认动作是 -print*
动作
含义
-print
打印查找到的内容(默认)
-ls
以长格式显示的方式打印查找到的内容
-delete
删除查找到的文件(仅能删除空目录)
-ok
后面跟自定义 shell 命令(会提示是否操作)
-exec
后面跟自定义 shell 命令(标准写法 -exec ;)
1.find查找后的动作命令示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~]
2.使用find命令结合xargs
1 2 3 4 [root@lqz ~] [root@lqz ~] [root@lqz ~]
3.find逻辑运算符
1 2 3 4 5 6 7 8 9 [root@lqz ~] [root@lqz ~] [root@lqz ~] [root@lqz ~]
4.find相关练习题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1.查找/tmp目录下,属主不是root,且文件名不以f开头的文件 2.查找/var目录下属主为root,且属组为mail的所有文件 3.查找/var目录下不属于root、lp、gdm的所有文件 4.查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件 5.查找/etc目录下大于1M且类型为普通文件的所有文件 6.将/etc/中的所有目录(仅目录)复制到/tmp下,目录结构不变 7.将/etc目录复制到/var/tmp/,/var/tmp/etc的所有目录权限777/var/tmp/etc目录中所有文件权限666 8.保留/var/log/下最近7天的日志文件,其他全部删除 9.创建touch file{1..10}10个文件, 保留file9,其他一次全部删除 10.解释如下每条命令含义 mkdir /root/dir1touch /root/dir1/file{1..10}find /root/dir1 -type f -name "file5" find /root/dir1 ! -name "file5" find /root/dir1 -name "file5" -o -name "file9" find /root/dir1 -name "file5" -o -name "file9" -ls find /root/dir1 \( -name "file5" -o -name "file9" \) -ls find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \; find /root/dir1 ! \( -name "file4" -o -name "file8" \) -exec rm -vf {} \;