Linux系统中获取路径的文件名的方法
发布时间:2022-11-11 23:28:22阅读:83次来源:HarmonyOS下载网 系统大全为您提供 这篇文章主要介绍了Linux系统中获取路径的文件名的方法,文中总结出了两条,需要的朋友可以参考下 代码如下: [root@dabu.info]#basename/root/aaab/dabu.txt 显示: 代码如下: dabu.txt#获取路径的文件名 shell脚本中如何获得脚本文件所在路径? 方法一: 代码如下: [root@dabu.info]#DIR=$(cd"$(dirname"$0")";pwd)[root@dabu.info]#echo$DIR 但是像这种dirname"$0"这种写法,在遇到source命令时会得到错误的结果。 方法二: 代码如下: [root@dabu.info]#echo"$(cd"$(dirname"${BASH_SOURCE[0]}")"&&pwd)" 上面一行命令可以获得脚本的绝对轮径,无论你在何处调用这个脚本。 但是如果含有软链接,就无法使用了。所以,我们为了能正确解析指向脚本的软链接,可以使用下面的多行命令: 代码如下: SOURCE="${BASH_SOURCE[0]}" while[-h"$SOURCE"];do#resolve$SOURCEuntilthefileisnolongerasymlink DIR="$(cd-P"$(dirname"$SOURCE")"&&pwd)" SOURCE="$(readlink"$SOURCE")" [[$SOURCE!=/*]]&&SOURCE="$DIR/$SOURCE"#if$SOURCEwasarelativesymlink,weneedtoresolveitrelativetothepathwherethesymlinkfilewaslocated done DIR="$(cd-P"$(dirname"$SOURCE")"&&pwd)" 也可与source,bash-c命令使用 但是,如果你在脚本中使用先cd切换到其他目录,在运行时上面的命令片段时,则上面的命令不能等到正确的结果。可以参考关于$CDPATH陷阱的文章。想理解它如何其作用的,可以运行下面的代码: 代码如下: #!/bin/bashSOURCE="${BASH_SOURCE[0]}" while[-h"$SOURCE"];do#resolve$SOURCEuntilthefileisnolongerasymlink TARGET="$(readlink"$SOURCE")" if[[$SOURCE==/*]];then echo"SOURCE'$SOURCE'isanabsolutesymlinkto'$TARGET'" SOURCE="$TARGET" else DIR="$(dirname"$SOURCE")" echo"SOURCE'$SOURCE'isarelativesymlinkto'$TARGET'(relativeto'$DIR')" SOURCE="$DIR/$TARGET"#if$SOURCEwasarelativesymlink,weneedtoresolveitrelativetothepathwherethesymlinkfilewaslocated fi done echo"SOURCEis'$SOURCE'" RDIR="$(dirname"$SOURCE")" DIR="$(cd-P"$(dirname"$SOURCE")"&&pwd)" if["$DIR"!="$RDIR"];then echo"DIR'$RDIR'resolvesto'$DIR'" fi echo"DIRis'$DIR'" 以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。本文来自系统大全http://www.win7cn.com/如需转载请注明!