在Linux系统的日常使用和脚本开发中,获取文件或目录的完整路径是高频需求,不同的场景对应不同的实现方法,下面逐一介绍常用的操作方式。

基础命令:查看当前工作目录的完整路径
如果需要查看当前所在目录的完整绝对路径,直接使用pwd命令即可,该命令会输出当前工作目录的绝对路径,不需要额外参数。
# 查看当前目录完整路径 pwd # 示例输出:/home/user/documents
如果当前目录是通过软链接进入的,默认pwd输出的是逻辑路径,如果需要显示软链接指向的真实目录路径,可以加上-P参数:
# 显示软链接对应的真实目录路径 pwd -P
查看指定文件的完整路径
使用realpath命令
realpath命令可以直接输出指定文件的完整绝对路径,即使文件是相对路径传入,也会自动解析为绝对路径,同时会处理软链接指向的真实路径。
# 查看当前目录下test.txt的完整路径 realpath test.txt # 示例输出:/home/user/documents/test.txt # 查看软链接文件的真实路径 realpath link_file
如果系统没有预装realpath命令,可以通过包管理器安装,比如Debian/Ubuntu系统执行sudo apt install realpath,CentOS系统执行sudo yum install realpath。
使用readlink命令
readlink命令可以读取软链接指向的目标路径,配合-f参数可以递归解析所有软链接,最终输出文件的完整绝对路径,效果和realpath类似。
# 查看文件的完整绝对路径,解析所有软链接 readlink -f test.txt # 示例输出:/home/user/documents/test.txt
结合其他工具获取路径
使用find命令定位文件并输出路径
如果不知道文件的具体位置,需要先从系统中查找文件,再输出其完整路径,可以使用find命令,指定查找的起始目录和文件名即可。
# 从根目录开始查找名为test.txt的文件,输出完整路径 find / -name test.txt 2>/dev/null # 示例输出:/home/user/documents/test.txt
这里的2>/dev/null是用来屏蔽没有权限访问的目录产生的错误提示,让输出结果更清晰。
使用ls命令配合参数显示路径
ls命令默认只显示文件名,加上-d和$PWD变量组合,可以显示当前目录下指定文件的完整路径。
# 显示当前目录下test.txt的完整路径 ls -d $PWD/test.txt # 示例输出:/home/user/documents/test.txt
绝对路径和相对路径的区别
完整路径一般指绝对路径,是以根目录/为起始的路径,比如/home/user/file.txt;相对路径是相对于当前工作目录的路径,比如当前在/home/user目录下,documents/test.txt就是相对路径。
在脚本编写中,建议尽量使用绝对路径,避免因为当前工作目录变化导致路径找不到的问题,提升脚本的稳定性和可移植性。
不同场景的方法选择
| 使用场景 | 推荐方法 | 优势 |
|---|---|---|
| 查看当前所在目录路径 | pwd / pwd -P | 简单直接,系统默认自带 |
| 已知文件位置,获取绝对路径 | realpath / readlink -f | 自动解析软链接,输出准确 |
| 不知道文件位置,先查找再获取路径 | find命令 | 可以全局搜索文件 |
| 快速输出当前目录下文件的路径 | ls -d $PWD/文件名 | 无需额外安装工具 |
以上就是Linux系统中显示文件完整路径的常用方法,用户可以根据自己的实际场景选择最合适的操作方式,快速获取需要的路径信息。