linux系统支持多种方式查看文件地址,无论是确认已知文件的完整路径,还是查找未知位置的文件,都可以通过内置命令快速实现,不同的命令对应不同的使用场景。

查看当前文件/目录的地址
如果已经进入了目标文件或目录所在的文件夹,想要查看当前位置的完整地址,可以使用pwd命令,该命令会输出当前工作目录的绝对路径。
# 查看当前所在目录的绝对路径 pwd # 输出示例:/home/user/documents
查看已知文件的完整地址
1. 使用realpath命令
realpath命令可以输出指定文件的绝对路径,即使传入的是相对路径或者符号链接,也会返回其真实对应的绝对地址。
# 查看相对路径文件的绝对地址 realpath ./test.txt # 输出示例:/home/user/documents/test.txt # 查看符号链接对应的真实文件地址 realpath link_file # 输出示例:/home/user/documents/real_file.txt
2. 使用readlink命令
如果需要查看符号链接本身指向的路径,可以使用readlink命令,加上-f参数可以递归解析所有符号链接,返回最终的真实路径。
# 查看符号链接指向的路径 readlink link_file # 输出示例:real_file.txt # 递归解析符号链接,返回绝对路径 readlink -f link_file # 输出示例:/home/user/documents/real_file.txt
查找未知位置的文件地址
1. 使用find命令
find命令可以在指定目录下递归查找符合条件的文件,并返回文件的完整路径,适合不知道文件具体位置时使用。
# 在根目录下查找名为test.txt的文件,返回完整路径 find / -name test.txt 2>/dev/null # 输出示例:/home/user/documents/test.txt # 2>/dev/null 用于忽略没有权限访问的目录产生的错误提示 # 在当前目录下查找后缀为.conf的配置文件 find . -name "*.conf" # 输出示例:./nginx.conf ./mysql.conf
2. 使用locate命令
locate命令基于系统的文件索引数据库查找文件,速度比find更快,但索引不是实时更新的,需要定期更新索引库。
# 查找名为test.txt的文件地址 locate test.txt # 输出示例:/home/user/documents/test.txt /tmp/test.txt # 更新文件索引数据库,需要root权限 sudo updatedb
常用命令对比
以下是几个常用查看文件地址命令的适用场景对比:
| 命令 | 适用场景 | 特点 |
|---|---|---|
pwd | 查看当前所在目录地址 | 仅输出当前工作目录的绝对路径,使用简单 |
realpath | 查看已知文件的绝对路径 | 支持解析相对路径和符号链接,返回真实绝对路径 |
find | 查找未知位置的文件地址 | 实时查找,支持多种匹配条件,速度较慢 |
locate | 快速查找文件地址 | 基于索引查询,速度快,索引非实时更新 |
注意事项
- 使用
find命令在根目录查找时,可能会产生大量权限错误提示,可以通过2>/dev/null过滤错误输出。 locate命令的索引数据库默认每天自动更新,如果刚创建的文件无法查找到,可以手动执行sudo updatedb更新索引。- 如果文件是符号链接,需要根据需求选择
realpath还是readlink,前者返回真实文件路径,后者返回链接指向的路径。