Linux/macOS 终端命令
find
命令(最强大)
find [搜索路径] [选项] [匹配条件]
常用场景:
-
按名称查找(区分大小写)
find /home/user/docs -name "report*.pdf"
→ 在docs
目录查找以report
开头、.pdf
结尾的文件 -
按类型查找(
f
=文件,d
=目录)find /var/log -type f -name "*.log"
→ 查找/var/log
下所有.log
文件 -
按修改时间查找(
-mtime
)find /backup -mtime -7
→ 查找7天内修改过的文件 -
组合条件(
-a
=与,-o
=或)find . -size +10M -a -name "*.iso"
→ 查找当前目录大于10MB的ISO文件
locate
命令(极速搜索)
locate [选项] 文件名关键词
特点:
- 基于预建数据库(需定期运行
sudo updatedb
更新) - 模糊匹配(
locate backup
会匹配/backup.log
、/home/backup.zip
等) - 快速检索全盘:
locate -i "invoice.docx"
(-i
忽略大小写)
grep
配合文件遍历
grep -rl "error" /var/log/ # 在`/var/log`递归搜索含"error"的文件
Windows 系统命令
命令提示符(CMD)
-
dir
基础搜索dir /s /b "C:\Projects\*.config"
→
/s
递归子目录,/b
简化输出,查找所有.config
文件 -
where
命令(Win7+)where /r C:\Users *.xlsx
→ 递归搜索
C:\Users
下的Excel文件
PowerShell(更推荐)
Get-ChildItem
(别名dir
/ls
)Get-ChildItem -Path D:\Backup -Recurse -Filter "*.bak"
→ 递归搜索
.bak
备份文件
搜索**Select-String -Path "C:\Logs\*.txt" -Pattern "404"
→ 在文本文件中查找”404″错误
通用技巧与注意事项
-
权限问题
- Linux/macOS:用
sudo
提权(如sudo find / -name ...
) - Windows:以管理员身份运行CMD/PowerShell
- Linux/macOS:用
-
路径规范
- Linux/macOS:路径用(如
/usr/local/bin
) - Windows:路径用
\
(如C:\Program Files
)
- Linux/macOS:路径用(如
-
通配符使用
- 匹配任意字符(
*.jpg
) - 匹配单个字符(
document-??.txt
)
- 匹配任意字符(
-
性能优化
- 尽量缩小搜索范围(如避免直接搜索或
C:\
) - 大目录搜索用
locate
(Linux)或Everything
(Windows第三方工具)
- 尽量缩小搜索范围(如避免直接搜索或
常见问题解答
Q:为什么find
命令报错Permission denied
?
A:无权限访问目录,用sudo
执行或添加2>/dev/null
忽略错误:find / -name "file.conf" 2>/dev/null
Q:如何查找隐藏文件?
A:Linux/macOS:find ~ -name ".*"
Windows PowerShell:Get-ChildItem -Force -Hidden
Q:如何搜索特定大小的文件?
A:Linux/macOS:find . -size +50M -size -100M
(50MB~100MB)
PowerShell:Get-ChildItem -Recurse | Where-Object {$_.Length -gt 1GB}
引用说明基于以下权威资源验证
- Linux man-pages 官方文档(man7.org)
- Microsoft PowerShell 核心文档(docs.microsoft.com/powershell)
- GNU findutils 4.9.0 技术手册(www.gnu.org/software/findutils)
- 实践环境:Ubuntu 22.04 LTS / macOS Ventura / Windows 11 22H2
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6029.html