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大小查找
3.find类型查找
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用户查找
6.find权限查找
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
3.find逻辑运算符
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/dir1 touch /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 {} ;
|