shell 中获取文件真实路径(绝对路径) - LGD_2008的专栏 - CSDN博客

shell 脚本中,通常会使用相对路径来做处理,但有时候,我们也许需要用到绝对路径。
在shell怎么获取一个文件或目录的绝对路径呢?
也许你会立马想到realpath(如果你写过php的话),那么shell支持这个命令吗?看一下这里你就知道了。
Realpath appears to come from debian, and is not part of coreutils,Realpath appears not to be standard issue.
这个命令并不是总是可用的。 其实我们可以使用readlink命令:readlink -f  file_path
file_real_path=$(readlink -f .)    获取当前的真实路径
file_real_path=$(readlink -f ../..)    获取上上一级的真实路径
这样就可以获得文件的绝对路径了,readlink的具体用法请自行man readlink!

Readlink对于softlink的处理拿到的是实际的文件路径,而不是softlink路径。

更好用的获取当前执行脚本的路径的方法为: 

CURDIR=$(cd $(dirname ${BASH_SOURCE[0]}); pwd )

echo $CURDIR 

其他的常用路径有:

获取当前执行脚本的路径
**filepath=$(cd "$(dirname "$0")"; pwd)
**

echo "$(basename $0) $(dirname $0) -- $filepath "
脚本文件的绝对路径存在了环境变量filepath中,可以用echo $filepath

$0: 获取当前脚本的名称
$#: 传递给脚本的参数个数
$$: shell脚本的进程号


原网址: 访问

创建于: 2018-10-13 15:32:29

目录: default

标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论