在 Linux 里“文件搜索”其实有很多层,从最常用、最该先学会的,到高级玩法,下面按“上手顺序”给你讲,配例子,照着敲就行。
find:按“文件属性”找(最常用)特点:慢一点,但最靠谱,能按名字、类型、大小、时间找
find /home -name "test.txt"
/home:从哪里开始找-name:精确匹配(区分大小写)不区分大小写:
find /home -iname "test.txt"
find . -type f # 普通文件
find . -type d # 目录
find . -size +10M # 大于10M
find . -size -1k # 小于1k
find . -mtime -1 # 1天内改过的
find . -mtime +7 # 7天前改的
find . -name "*.log" -delete
grep:按“文件内容”找(搜代码/日志神器)特点:找“文件里写了什么”
grep "error" app.log
grep -r "main" /project
grep -n "error" app.log
grep -i "error" app.log
locate(快,但不够实时)locate nginx.conf
⚠️ 第一次用可能要先建索引:
sudo updatedb
适合:
find + grep 组合find . -name "*.py" | xargs grep "def main"
fd(现代版 find,超好用)安装(Ubuntu):
sudo apt install fd-find
使用:
fd test
✅ 默认忽略 .git
✅ 智能大小写
✅ 速度快
find -namegrep -rfind -type / -size / -mtimelocatefd(效率拉满)find / locate / fdgrepfind + grep 就够了如果你愿意,可以告诉我:
我可以直接给你“最合适的一条命令”。