Linux系统中获取路径的文件名的方法

发布时间:2022-11-11 23:28:22阅读:83次
系统大全为您提供  这篇文章主要介绍了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/如需转载请注明!