📌  相关文章
📜  bash 获取文件完整路径 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:13:38.041000             🧑  作者: Mango

Bash 获取文件完整路径 - Shell-Bash

在 Bash 中,获取一个文件的完整路径可以使用 readlink 命令。 readlink 命令用于显示或跟踪符号链接的目标文件名,可以用来获取文件的绝对路径。

下面是一个例子:

#!/bin/bash

file="test.txt"
full_path=$(readlink -f $file)

echo $full_path

上面的例子中,我们定义了一个变量 file 并赋值为 test.txt,然后使用 readlink -f 命令获取文件的完整路径,并将其保存到变量 full_path 中。最后,我们使用 echo 命令打印出文件的完整路径。

输出结果如下:

/home/user/test.txt

需要注意的是,如果文件不存在,则会显示一个错误消息。此外,readlink 命令仅适用于符号链接,无法获取硬链接的完整路径。

我们可以通过结合其他命令来确保文件存在,例如:

#!/bin/bash

file="test.txt"

# 检查文件是否存在
if [ ! -e "$file" ]; then
  echo "文件 '$file' 不存在"
  exit 1
fi

# 获取文件的完整路径
full_path=$(readlink -f $file)

echo $full_path

上面的脚本检查文件是否存在,如果不存在,则打印出错误消息并退出脚本。如果文件存在,脚本将继续获取文件的完整路径并打印输出。

输出结果如下:

/home/user/test.txt

需要注意的是,在 Linux 中,路径名限制为 4096 字节,如果文件的绝对路径长度超过该限制,则会导致错误。