在Linux中获取文件的完整路径(绝对路径)有多种方法,以下是几种常用且高效的方式:
realpath
命令bash
realpath 文件名
- 示例:
bash
realpath myfile.txt
# 输出:/home/user/documents/myfile.txt
- 说明:直接解析文件或符号链接的完整路径。
readlink -f
(兼容性更好)bash
readlink -f 文件名
- 示例:
bash
readlink -f myfile.txt
# 输出:/home/user/documents/myfile.txt
- 注意:适用于文件和符号链接,即使文件不存在也会解析路径。
pwd
获取当前目录下的文件路径bash
echo "$(pwd)/文件名"
- 示例:
bash
echo "$(pwd)/myfile.txt"
# 输出:/current/directory/myfile.txt
- 适用场景:仅适用于当前目录下的文件。
find
命令搜索文件并显示路径bash
find / -name "文件名" 2>/dev/null
- 示例:
bash
find / -name "myfile.txt" 2>/dev/null
# 输出:/home/user/documents/myfile.txt
- 说明:在全盘搜索文件(2>/dev/null
忽略权限错误)。
ls
和符号链接解析bash
ls -l 文件名 | awk '{print $NF}'
- 适用场景:检查符号链接的实际路径。
bash
# 获取脚本的绝对路径
SCRIPT_PATH="$(realpath "$0")"
echo "$SCRIPT_PATH"
realpath
和 readlink
仍会返回解析后的路径。realpath
或 readlink -f
会自动解析链接的最终目标。find
适合全盘搜索,但速度较慢;已知目录时优先用 realpath
。选择最适合你场景的方法即可!