📅  最后修改于: 2023-12-03 15:13:38.041000             🧑  作者: Mango
在 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 字节,如果文件的绝对路径长度超过该限制,则会导致错误。