Linux系统mount后文件具体位置如何快速定位?
- 内容介绍
- 文章标签
- 相关推荐
在日常程序管理、软件开发或是日常使用中,一旦挂载完文件程序。却不清楚它们到底存放在哪个目录或磁盘块里往往会导致定位文件、排查故障、备份恢复等工作变得繁琐且低效。下面给出几种快速定位挂载后文件具体位置的方法,帮助你一眼就能看到想要的方法。
1️⃣ 先确认挂载点:mount 或 findmnt
最直接的方式就是查看当前程序已挂载的文件程序列表。它会告诉你每个设备对应的挂载点方法。
$ mount
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 500G 431G 49G 88% /
tmpfs 0 0 0 0% /dev
tmpfs 498M 0 498M 0% /run
...
$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,...
/run tmpfs tmpfs rw。...
...
如果你只关心某个设备或分区,可以直接用:
$ findmnt /dev/sda1
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,...
2️⃣ 使用 find 精确搜索文件
当你知道文件名但不确定所在目录时,用 find 从根目录开始递归搜索。
$ sudo find / -name "example.txt" -print
/home/user/Documents/example.txt
/media/user/USB/example.txt
...
如果想限制搜索范围,可指定起始目录:
$ sudo find /home/user/Documents -name "*.log"> logs_list.txt
从小技巧来看,结合 -type f,-size +10M。-mtime -7
例如找最近一周内大于10MB的日志:
$ sudo find /var/log -type f -size +10M -mtime -7
/var/log/apache/error.log
...
3️⃣ 快速查询:
"locate" 使用预建数据库,速度快到秒级别,但需要定期更新:
$ locate example.txt | head
/home/user/Documents/example.txt
/media/user/USB/example.txt
...
$ sudo updatedb # 更新数据库,若发现新文件未被找到时使用此命令
至于痛点提醒,
如果数据库太旧,你可能会得到空结果;记得及时执行 updatedb .
4️⃣ 找可执行程序:,
"which": 搜索 PATH 环境变量中可执行程序的位置。
$ which python3
/usr/bin/python3
$ whereis vim | head
说到vim,/usr/bin/vim /usr/share/vim ...
这些命令非常适合定位工具或脚本的位置。`whereis` 能同时返回源代码、手册页等相关信息。
5️⃣ 查看已打开的文件:
`lsof` 列出所有打开的文件及其进程 ID,对于排查进程占用的问题非常有用。

$ lsof | grep "example.txt"
user PID USER FD TYPE DEVICE SIZE/OFF MOUNTPOINT
user1231234 user txt txt N/A?,?...
6️⃣ 查看目录结构:
`tree` 把目录树可视化,帮助快速浏览大目录结构。说起来,
$ tree ~/Documents | head
Documents/
├── Projects/
│ ├── projectA/
│ │ └── README.md
│ └── projectB/
└── Notes/
7️⃣ 硬盘空间与挂载关系:。
`df` 给出每个挂载点的磁盘使用情况,并显示对应设备。怎么说呢,
8️⃣ 想知道文件在磁盘上的物理位置?
-
fdisk/tuneup: 先用 `fdisk –l` 或 `lsblk` 看分区布局,再结合 `filefrag` 查看碎片化程度。
-
filefrag: 对具体文件做碎片化分析,如下所示:
-
bash $ sudo filefrag example.txt
File fragment size = ...
Blocks count = ...
Fragments:
这能让你直观了解该文件在磁盘上如何分布。老实说,
-
e2label/e4defrag: 如果你怀疑碎片影响性能。可使用 `e4defrag` 对整个分区进行整理。
-
debugfs :**仅限专业使用者**。话说回来, 通过 debugfs 可进一步探查 inode 和块号信息。但请谨慎操作,
-
注意事项:
-
No root access → cannot use `filefrag`,`debugfs`.
-
'filefrag' output may be misleading if file is sparse or has holes.
-
'e4defrag' can lock filesystem temporarily – schedule during maintenance windows.
-
'debugfs' should never be run on mounted filesystem unless in read-only mode!
 ,  ,  ,  ,  , ﭑ ⱽ⡶⠪⢦⠆ ⵇ❘❘❘❘❘�𬩾𬩾𬩾𬩾𬩾𬩾𬩾𬩾𬩾�𮫴㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️ 🪑🌕🌕🌕🌕 🌕🌕🌕 🌕🌚🤷♂️🤷♂️🤷♂️🤷♂️🤷♂️🐤🐤🐤🐤🐤🐝🐝🐝🙈🙈🙈🙈🙈🙈👻👻👻👻👻🎨🏆🏆🏆🏆🏆 🧸 🧸 🧸 💀💀💀💀💀💀🔚🔚🔚🔚 🔚 🔚 🔚 🔚 🔚 🔙🔙🔙🔙⬌⬌➡➡➡➡ ➡ ➡➡ ➡➡➠➠➠ ➗➗➗ ➗➗➗ ➡⬅↹↹↹↹ ↸↸ ↵↵ ↵⇅⇅ ⇶⇶ ⇶⇶ ⇶⇶ ⇶⇴〄〄〄〄〄〄〄〄【【❮ ❮ ❮ ❮ ❮ ❯ ❯ ❯ ❯ ❯ ▼▼▼▼▼▼ ▼▼▲▲▲▲ ▲▲▲▲ ▲▲▲ ▲ ▲▲ ▼▽▽▽▽ ▽◼◼◼ ◼◼◼◼ ◉✲✲✲✲ ✿✿ ✒✒ ✥ ✥ ✥ ✨✨✨✨✨✨✨ ✨⭐ ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐ 📉📉📉?,?,?,?,?,?,?,?,?,?,?,?,?,?⚑⚑⚑,⚠?⚡⚪⚫🔥🔥🔥🔥🔥🔥🔥🔥🚺🚺🚺...
在日常程序管理、软件开发或是日常使用中,一旦挂载完文件程序。却不清楚它们到底存放在哪个目录或磁盘块里往往会导致定位文件、排查故障、备份恢复等工作变得繁琐且低效。下面给出几种快速定位挂载后文件具体位置的方法,帮助你一眼就能看到想要的方法。
1️⃣ 先确认挂载点:mount 或 findmnt
最直接的方式就是查看当前程序已挂载的文件程序列表。它会告诉你每个设备对应的挂载点方法。
$ mount
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 500G 431G 49G 88% /
tmpfs 0 0 0 0% /dev
tmpfs 498M 0 498M 0% /run
...
$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,...
/run tmpfs tmpfs rw。...
...
如果你只关心某个设备或分区,可以直接用:
$ findmnt /dev/sda1
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda1 ext4 rw,...
2️⃣ 使用 find 精确搜索文件
当你知道文件名但不确定所在目录时,用 find 从根目录开始递归搜索。
$ sudo find / -name "example.txt" -print
/home/user/Documents/example.txt
/media/user/USB/example.txt
...
如果想限制搜索范围,可指定起始目录:
$ sudo find /home/user/Documents -name "*.log"> logs_list.txt
从小技巧来看,结合 -type f,-size +10M。-mtime -7
例如找最近一周内大于10MB的日志:
$ sudo find /var/log -type f -size +10M -mtime -7
/var/log/apache/error.log
...
3️⃣ 快速查询:
"locate" 使用预建数据库,速度快到秒级别,但需要定期更新:
$ locate example.txt | head
/home/user/Documents/example.txt
/media/user/USB/example.txt
...
$ sudo updatedb # 更新数据库,若发现新文件未被找到时使用此命令
至于痛点提醒,
如果数据库太旧,你可能会得到空结果;记得及时执行 updatedb .
4️⃣ 找可执行程序:,
"which": 搜索 PATH 环境变量中可执行程序的位置。
$ which python3
/usr/bin/python3
$ whereis vim | head
说到vim,/usr/bin/vim /usr/share/vim ...
这些命令非常适合定位工具或脚本的位置。`whereis` 能同时返回源代码、手册页等相关信息。
5️⃣ 查看已打开的文件:
`lsof` 列出所有打开的文件及其进程 ID,对于排查进程占用的问题非常有用。

$ lsof | grep "example.txt"
user PID USER FD TYPE DEVICE SIZE/OFF MOUNTPOINT
user1231234 user txt txt N/A?,?...
6️⃣ 查看目录结构:
`tree` 把目录树可视化,帮助快速浏览大目录结构。说起来,
$ tree ~/Documents | head
Documents/
├── Projects/
│ ├── projectA/
│ │ └── README.md
│ └── projectB/
└── Notes/
7️⃣ 硬盘空间与挂载关系:。
`df` 给出每个挂载点的磁盘使用情况,并显示对应设备。怎么说呢,
8️⃣ 想知道文件在磁盘上的物理位置?
-
fdisk/tuneup: 先用 `fdisk –l` 或 `lsblk` 看分区布局,再结合 `filefrag` 查看碎片化程度。
-
filefrag: 对具体文件做碎片化分析,如下所示:
-
bash $ sudo filefrag example.txt
File fragment size = ...
Blocks count = ...
Fragments:
这能让你直观了解该文件在磁盘上如何分布。老实说,
-
e2label/e4defrag: 如果你怀疑碎片影响性能。可使用 `e4defrag` 对整个分区进行整理。
-
debugfs :**仅限专业使用者**。话说回来, 通过 debugfs 可进一步探查 inode 和块号信息。但请谨慎操作,
-
注意事项:
-
No root access → cannot use `filefrag`,`debugfs`.
-
'filefrag' output may be misleading if file is sparse or has holes.
-
'e4defrag' can lock filesystem temporarily – schedule during maintenance windows.
-
'debugfs' should never be run on mounted filesystem unless in read-only mode!
 ,  ,  ,  ,  , ﭑ ⱽ⡶⠪⢦⠆ ⵇ❘❘❘❘❘�𬩾𬩾𬩾𬩾𬩾𬩾𬩾𬩾𬩾�𮫴㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃㖃🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️🛏️ 🪑🌕🌕🌕🌕 🌕🌕🌕 🌕🌚🤷♂️🤷♂️🤷♂️🤷♂️🤷♂️🐤🐤🐤🐤🐤🐝🐝🐝🙈🙈🙈🙈🙈🙈👻👻👻👻👻🎨🏆🏆🏆🏆🏆 🧸 🧸 🧸 💀💀💀💀💀💀🔚🔚🔚🔚 🔚 🔚 🔚 🔚 🔚 🔙🔙🔙🔙⬌⬌➡➡➡➡ ➡ ➡➡ ➡➡➠➠➠ ➗➗➗ ➗➗➗ ➡⬅↹↹↹↹ ↸↸ ↵↵ ↵⇅⇅ ⇶⇶ ⇶⇶ ⇶⇶ ⇶⇴〄〄〄〄〄〄〄〄【【❮ ❮ ❮ ❮ ❮ ❯ ❯ ❯ ❯ ❯ ▼▼▼▼▼▼ ▼▼▲▲▲▲ ▲▲▲▲ ▲▲▲ ▲ ▲▲ ▼▽▽▽▽ ▽◼◼◼ ◼◼◼◼ ◉✲✲✲✲ ✿✿ ✒✒ ✥ ✥ ✥ ✨✨✨✨✨✨✨ ✨⭐ ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐ ⭐⭐ 📉📉📉?,?,?,?,?,?,?,?,?,?,?,?,?,?⚑⚑⚑,⚠?⚡⚪⚫🔥🔥🔥🔥🔥🔥🔥🔥🚺🚺🚺...

