📖 知识点
1. Windows 搜索框 → Linux find
| Windows | Linux | 说明 |
|---|---|---|
| 资源管理器搜索框 |
| 按名字查找文件 |
| 全局搜索 |
| 全盘搜索 |
find 是 Linux 的 "寻宝探测器":在指定目录(和它的所有子目录)里,按名字等条件查找文件。
💡 生活比喻Windows 搜索框像 "在房间里喊一嗓子,看谁答应";
find像 "逐间房间地毯式翻找"—— 你告诉它从哪间屋找起(路径)、找什么(文件名),它就一层层翻到底。
2. 基本用法
find 路径 -name 文件名
find . -name "报告.txt" # 在当前目录(.)找报告.txt
find /home/user -name "*.txt" # 在home下找所有.txt结尾的
-name指定文件名;*是通配符,*.txt匹配所有以.txt 结尾的文件。
3. 常用查找方式
find . -name "*.log" # 找所有.log文件
find / -name "config.py" # 全盘找config.py(可能较慢)
find . -name "笔记*" # 找名字以"笔记"开头的
find . -type d -name "项目" # -type d 只找目录(文件夹)
-type指定类型:d目录、f文件。找文件夹用-type d。
4. 找不到就缩小范围
全盘 find / 会慢,先缩小到可能的位置:
find /home/user -name "*.txt" # 在用户家目录找,更快
find . -name "报告*" # 在当前目录找
⚠️ 易错提醒
文件名最好用引号括起来(
"*.txt"),有通配符时避免被 shell 误解析
find /全盘搜索较慢,先缩小路径范围
-type d找目录,-type f找文件,默认都找
⚔️ Kata 实战任务
任务需求:
回家,创建几个测试文件:报告.txt、笔记.txt、脚本.sh、data.log
用
find . -name "*.txt"找所有.txt 文件用
find . -name "报告.txt"精确找报告.txt用
find . -type d只找目录(文件夹)用
find ~ -name "*.log"在家目录找.log 文件
参考代码(在终端依次敲)
# 准备几个"宝藏"
cd ~
touch 报告.txt 笔记.txt 脚本.sh data.log
# 1. 找所有 .txt 文件
find . -name "*.txt"
# 2. 精确找"报告.txt"
find . -name "报告.txt"
# 3. 只找目录
find . -type d
# 4. 在家目录找 .log 文件
find ~ -name "*.log"
运行示例:
user@linux:~$ find . -name "*.txt"
./报告.txt
./笔记.txt
user@linux:~$ find . -name "报告.txt"
./报告.txt
user@linux:~$ find . -type d
.
./Desktop
./Documents
./项目
user@linux:~$ find ~ -name "*.log"
/home/user/data.log
🧠 思考题
find . -name "*.txt"里,.、-name、"*.txt"分别代表什么?*是什么?find和-type d配合能找什么?如果想找某个文件夹,该怎么写?
行者孙Python