插件窝 干货文章 快速获取Linux文件的完整路径

快速获取Linux文件的完整路径

路径 文件 realpath myfile 1264    来源:    2025-04-10

在Linux中获取文件的完整路径(绝对路径)有多种方法,以下是几种常用且高效的方式:


1. 使用 realpath 命令

bash realpath 文件名 - 示例bash realpath myfile.txt # 输出:/home/user/documents/myfile.txt - 说明:直接解析文件或符号链接的完整路径。


2. 使用 readlink -f(兼容性更好)

bash readlink -f 文件名 - 示例bash readlink -f myfile.txt # 输出:/home/user/documents/myfile.txt - 注意:适用于文件和符号链接,即使文件不存在也会解析路径。


3. 结合 pwd 获取当前目录下的文件路径

bash echo "$(pwd)/文件名" - 示例bash echo "$(pwd)/myfile.txt" # 输出:/current/directory/myfile.txt - 适用场景:仅适用于当前目录下的文件。


4. 使用 find 命令搜索文件并显示路径

bash find / -name "文件名" 2>/dev/null - 示例bash find / -name "myfile.txt" 2>/dev/null # 输出:/home/user/documents/myfile.txt - 说明:在全盘搜索文件(2>/dev/null 忽略权限错误)。


5. 通过 ls 和符号链接解析

bash ls -l 文件名 | awk '{print $NF}' - 适用场景:检查符号链接的实际路径。


6. 在脚本中获取自身路径

bash # 获取脚本的绝对路径 SCRIPT_PATH="$(realpath "$0")" echo "$SCRIPT_PATH"


常见问题解决:

  • 文件不存在时realpathreadlink 仍会返回解析后的路径。
  • 符号链接realpathreadlink -f 会自动解析链接的最终目标。
  • 性能find 适合全盘搜索,但速度较慢;已知目录时优先用 realpath

选择最适合你场景的方法即可!