Linux文件和文件夹的查找、替换、删除

持续更新Linux常用查找替换命令使用实例,包括各种find, sed, grep等

#搜索.log文件
find / -name ‘*.log’ 

#在log文件中查找关键词Abc
grep Abc /log 

#查找替换log文件的Abc为123
sed ‘s/Abc/123/g’ log 

#递归查找和替换
find . -type f -print0 | xargs -0 sed -i ‘s/原字符串/新字符串/g’ 
find . -name ‘*.html’ | xargs perl -pi -e ‘s/原字符串/新字符串/g’ #目录权限 chattr -i . / chattr -a .
sed -i ‘s/原字符串/新字符串/g’ `grep ‘原字符串’ -rl /查找目录/ –include “*.文件类型”`

#批量复制文件到所有子目录
find ./ -maxdepth 1 -type d -exec cp -r path/file {} \; 

#批量删除A111文件夹
find . -type d -name A111 -exec rm -rf {} \;
find . -type d | grep A111$ | xargs rm -rf

#批量删除d111和d222文件夹
find . \( -name d111 -o -name d222 \) -type d -exec rm -fr "{}" \;

#find并统计数量
find . -type f -print | wc -l 

#查找并批量删除空文件夹
find . -type d -empty -delete

#查找并批量删除所有.log文件
find . -name ‘*.log’ -type f -delete

#过滤111开头的结果
grep -v 111

#查找当前文件夹夹下的一级子目录中修改时间为 2022/2/22的abc.txt文件并删除
find . -maxdepth 2 -type f -name "abc.txt" -newermt '2022-02-22' | xagrs rm -rf