find 命令
查找文件或目录(支持通配符如 * 和 ?)
find /path/to/search -name "*.txt". // 查找对应路径下所有的txt文件
-type f 表示只查找文件(不包括目录)
find /path/to/directory -type f -name "hello*" // 查找对应目录下所有hello开头的文件
-type d 只查找目录(不包括文件)
find /path/to/directory -type d -name "hello*" // 查找对应目录下所有hello开头的文件夹
查找特定大小的文件
find /path/to/directory -size +100M // 查找对应目录下所有大于100Mb的文件,可以使用 + 表示大于,- 表示小于,M 表示兆字节,k 表示千字节,G 表示吉字节。
查找特定条件的文件
find /etc -perm 644 //特定权限
find /path/to/search -user username //特定用户
find /path/to/search -group groupname //特定组
查找并执行操作
// 对找到的每个文件执行指定的命令,{} 是找到的文件的占位符,\; 表示命令结束。
find /path/to/search -name "*.log" -exec rm {} \; // 对找到的每个文件执行rm
find /tmp -type f -mtime +7 -exec rm {} \; // 查找 /tmp 目录下修改时间超过 7 天的文件并删除它们。
查找最新修改的文件
find /path/to/search -mtime -1 // 查找在过去 24 小时内修改过的文件。
查找并忽略大小写
find /path/to/search -iname "filename"
grep 命令
在文件中搜索特定字符串
grep -i -n "search_pattern" filename // -i 表示忽略大小写, -n 表示显示行号
在文件夹中递归查找对应字符串
grep -r -n "search_pattern" directory // -i 表示忽略大小写, -n 表示显示行号, -r 递归查找所有文件
搜索整个单词
grep -w "cat" animals.txt // 在 animals.txt 中查找独立的单词 "cat",避免匹配如 "category"。
显示匹配行前后的内容
grep -A num "pattern" filename # 显示匹配行及其后 num 行
grep -B num "pattern" filename # 显示匹配行及其前 num 行
grep -C num "pattern" filename # 显示匹配行及其前后各 num 行
混合使用
查找当前目录及子目录下所有 .txt 文件中包含 "error" 的行
find . -name "*.txt" | xargs grep "error"