搜索查找,五星级命令【find】

Linux find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示

常用参数:-type 【指定文件类型】
                 f【file(文件)】
                 d【directory(目录)】
                 c【character(字符串)】
                 b【block(块设备_磁盘)】
                 s【socket(通信 )】
              -a【and交集,并且】
              -o【并集,或者】
              -size【指定文件大小,+200KB=大于200KB文件,-200KB=小于200KB文件】
              -atime【访问时间(access time 简写为atime)按修改时间查找,时间数字:+7(7天以前) 7(第7天) -7(7天以后) 】
              -mtime【修改时间(modify time 简写为mtime)按修改时间查找,时间数字:+7(7天以前) 7(第7天) -7(7天以后) 】
              -ctime【状态修改时间(change time 简写为ctime)按修改时间查找,时间数字:+7(7天以前) 7(第7天) -7(7天以后) 】

语法
1、find /date -type f -name "a.txt" -exec rm {} \; 【查找/date目录下 文件 名为a.txt的文件并删除】
注释:{} 为此条命令范围内的文件,\;  为转义,告诉shell不必特殊解释这个字符,只把它当成字面上的意思

2、find /date -type f -name 'a.txt' | xargs rm 【搭配管道技术,后面可以一直接管道去执行操作】

3、find /log -type f -name "*.log" -mtime +7 |xargs rm【删除/log目录下所有7天以前以log结尾文件 (+7为7天以前,7为第7天,-7为7天以后)】

4、find /data -type f -size +200KB -ctime +3 -name "*.sh" -exec mv {} /opt \;
注释:-size(指定文件大小) +200KB(大于200KB文件)
         atime=access time【访问时间】
         mtime=modify time【修改时间】
         ctime=change time【状态修改时间】

5、find /backup -type f -time +7 \(-name "*.tar.gz" -o -name "*.log"\)|xargs rm -f【删除/backup目录下7天以前的log和tar.gz文件】

find扩展知识:
find ./ -maxdepth 1 -type d ! -name "."
注释:find ./(当前目录) -maxdepth 1(查深度,只查当前目录) -type d(系统类型) !(取反) -name "."

 

 

find结合sed查找替换企业案例多方法精讲-企业常见面试题
1. 使用管道:find /data -type f -name "*.txt"|xargs sed -i 's#111#222#g'
2. 使用exec:find /data -type f -name "*.txt" -exec sed -i 's#111#222#g' {} \;

• locate 【查找文件或目录】 比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db
PS:CentOS7默认不安装,安装方法:1、yum -y install mlocate   2、updatedb 命令初始化一下文件库

语法:locate 文件

posted @ 2021-09-17 15:49  ET南浔  阅读(165)  评论(0)    收藏  举报