搜索查找,五星级命令【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 文件
浙公网安备 33010602011771号