Ubuntu文件查找实用指南
一 图形界面查找
gnome-search-tool 来获得更丰富的查找界面。以上方式适合不常用命令行的用户快速定位文件。二 命令行按文件名查找
find /home -name "*.txt"(按名称);find /var/log -mtime -1(近 24 小时内修改);find . -type f -size +10M(当前目录下大于 10MB 的普通文件);find /etc -iname "HOSTS"(忽略大小写)。支持按权限、属主、类型、时间、大小等多条件组合,适合精确查找与后续处理(如 -exec)。locate bash;locate -i "readme"(忽略大小写)。若刚创建/移动/重命名文件未出现,先执行 sudo updatedb 更新索引后再查。适合日常快速定位,不遍历磁盘。which python3;用 whereis 还可同时定位二进制、手册和源码路径:whereis gcc。适合确认命令的实际路径与安装文件分布。三 按文件内容查找
grep -n "TODO" app.py;在 vim 中打开文件后输入 /TODO 并按 n/N 跳转下一个/上一个匹配。grep -r "keyword" /path;结合 find 先限定文件集再搜内容,例如 find . -name "*.log" -exec grep -l "error" {} +(仅列出包含关键字的文件名);如需忽略大小写加 -i,显示行号加 -n。处理大量结果时,可将错误输出(如“权限不够”)过滤掉:2>/dev/null。四 按时间大小与权限查找
find /var -mmin -30(近 30 分钟修改);find /var -atime -2(近 48 小时访问);find . -cmin +60(60 分钟前状态改变)。单位说明:amin/-atime 为访问时间,mmin/-mtime 为内容修改时间,cmin/-ctime 为元数据/状态改变时间;数值前的 + 表示“以前”,- 表示“以内”。find ~ -size +100M -size -1G(大于 100MB 且小于 1GB);单位可用 b、c、w、k、M、G。find /dev -type b(块设备);find . -type f -perm 644(权限为 644 的普通文件);find . -empty(空文件/目录)。这些限定可与时间、大小组合,快速缩小结果集。五 实用组合与排错建议
find . -name "*.py" -exec grep -l "import requests" {} +;按时间清理旧日志——find /var/log -name "*.gz" -mtime +7 -delete(删除 7 天前的压缩日志,执行前先预览);快速定位命令与安装包文件——which gcc、whereis gcc、dpkg -S /usr/bin/gcc(查哪个包提供该文件)、apt-file search "header.h"(查哪个包提供某头文件,需先 sudo apt-file update)。sudo updatedb;在 find 中合理使用 -maxdepth 限制搜索深度,避免不必要的遍历;对含空格或特殊字符的路径,优先使用 find ... -print0 | xargs -0 ... 以避免解析错误。