1. find 命令(最通用最强大)
find 是 Linux 下查找文件和目录的终极利器。用法灵活,支持递归、条件过滤、正则、执行操作等。
查找名为 file.txt 的文件:
find /path/to/search -name "file.txt"
例:在全盘查找
find / -name "file.txt"
查找名为 myfolder 的文件夹:
find /path/to/search -type d -name "myfolder"
查找所有以 .conf 结尾的文件:
find /etc -type f -name "*.conf"
查找并显示详细路径:
find $HOME -name "*.pdf"
2. locate 命令(速度最快,适合频繁查找)
locate 利用数据库,查找极快。首次需要更新数据库:
安装:
sudo pacman -S mlocate
sudo updatedb
使用:
locate file.txt
locate myfolder
locate '*.pdf'
注意:locate 查到的是之前数据库里记录的,新文件请先 sudo updatedb 刷新数据库。
3. fd 命令(更友好、现代化、输出美观)
fd 是现代化的 find 替代品,支持彩色输出、忽略 .gitignore、语法简单。
安装:
sudo pacman -S fd
(用命令叫 fd,有时是 fdfind)
用法示例:
fd file.txt # 在当前目录递归查找文件
fd myfolder -t d # 只查找名为myfolder的目录
fd '\.pdf$' # 查找所有 pdf 文件
4. find + grep 联合查找(查内容或复杂匹配)
查找包含特定内容的文件:
find . -type f -name "*.c" | xargs grep "main"
5. ranger 文件管理器(交互式,支持模糊查找)
安装:
sudo pacman -S ranger
运行后按 / 输入关键字查找
总结推荐
最通用、最稳妥:find
最快速:locate
最美观现代:fd
最简单GUI:ranger
你可以直接复制以下命令尝试(以查找test.py为例):
find ~ -name "test.py"
locate test.py
fd test.py ~
模糊查找
1. 用 find 结合通配符(支持*、?等)
查找包含关键字的文件(比如查找名字里有 "test" 的所有文件):
find /path/to/search -type f -name "*test*"
例如在家目录下递归查找名字含有“data”的文件:
find ~ -type f -name "*data*"
2. 用 fd 命令(推荐,支持模糊/正则)
查找名字中含有"data"的文件:
fd data
这会在当前目录递归查找所有文件名里含有“data”的条目(文件和目录)。
只查找文件夹:
fd data -t d
正则查找所有以“data”结尾的文件:
fd 'data$'
3. 用 locate 配合正则或通配符(模糊但是基于索引)
查找包含"test"的所有文件和文件夹:
locate test
或使用通配符(注意引号):
locate '*test*'
4. 交互式模糊查找:fzf(终极推荐!)
fzf 是一款模糊查找神器,尤其适合大量文件时,实时模糊筛选,体验极佳。
安装:
sudo pacman -S fzf
基本用法:
find . -type f | fzf
上面这条命令会把当前目录下所有文件管道到 fzf,你可以直接输入关键字模糊筛选,回车选中即可。
直接查找所有文件并模糊匹配(全盘):
locate "" | fzf
5. ranger 文件管理器内置模糊查找
打开 ranger,直接按 /,输入模糊关键字,实时跳转查找。
总结一句话
想命令行模糊查找:用 fd 关键字 或 find ~ -name "*关键字*"
想交互模糊查找:用 fzf(推荐,极快极爽!)
补充小技巧:
大部分现代 shell(如 zsh)也有内置模糊补全,查文件很方便。
组合 fd | fzf,就是终极文件模糊查找!
如需具体用法举例或结合其他操作,请告诉我你的实际场景!