一、Find(查找文件或目录)
1.在/var/lib目录下查找所有文件其所有者是root用户的文件。
find /var/lib -user root
2.查找家目录其所有者不是linux用户,并用长格式显示(如ls –l 的显示结果)。
把前面的结果当成是后面的命令中的{}的输入,然后执行并输出到屏幕
sudo find ~ ! -user linux -exec ls -l {} \;
2.1、查找文件然后复制到/tmp目录下
find /var/lib -user root -exec cp -r {} /tmp \;
3.查找某一目录下名字是*.txt的文件
find /home -name "*.txt" -type f
3.1、查找某一目录下名字是*.txt的目录
find /home -name "*.txt" -type d
4.当前目录查找30天以前的文件
find . -name "*.txt" -type f mtime +30
4.14.当前目录查找1天以内的文件
find . -name "*.txt" -type f mtime -1
5.查找大于5M的文件
M是大写,k是小写,才能识别
find . -name "*.txt" -type f mtime -1 -size 5M
6.查找权限是644的文件
文件默认权限666,目录777,默认权限掩码022
最终一个文件权限是644,目录权限的755
find . -name "*.txt" -type f mtime -1 -perm 644
6.1、把某些文件的权限都改成644
find . -type f -exec chmod -R 644 {} \;
二、grep(查找文件里的内容)
1.查找/etc/passwd下的root用户的信息
显示行号,颜色显示
grep -n --color "root" /etc/passwd
1.1、内容以root开头 “^root”,内容以root结尾"root$"
2.查找文件里过滤掉#的内容
#代表注释内容,看起来很繁琐
grep -v "#" /etc/resolv.conf
2.1过滤掉空格
grep -v "#" /etc/resolv.conf | grep -v "^$"
3.grep与正则表达式结合
三、正则表达式与通配符
正则表达式是用来匹配在文件中符合条件的字符串,正则是包含匹配。
grep,awk,sed命令都可以支持正则表达式。
通配符是用来匹配符合条件的文件名,通配符是完全匹配。
find,ls,cp这些命令不支持正则表达式,所以选择shell自己的通配符来匹配。
例如 *,?,[],
来源:CSDN
作者:吃数据的猴子
链接:https://blog.csdn.net/m0_43450897/article/details/103838490