国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux系統中獲取路徑的文件名的方法

2020-05-27 12:59:51
字體:
來源:轉載
供稿:網友

   這篇文章主要介紹了Linux系統中獲取路徑的文件名的方法,文中總結出了兩條,需要的朋友可以參考下

  代碼如下:

  [root@dabu.info ]#basename /root/aaa/bbb/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 $SOURCE until the file is no longer a symlink

  DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

  SOURCE="$(readlink "$SOURCE")"

  [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located

  done

  DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

  也可與source,bash -c命令使用

  但是,如果你在腳本中使用先cd切換到其他目錄,在運行時上面的命令片段時,則上面的命令不能等到正確的結果。可以參考關于$CDPATH 陷阱的文章。想理解它如何其作用的,可以運行下面的代碼:

  代碼如下:

  #!/bin/bash

SOURCE="${BASH_SOURCE[0]}"

  while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink

  TARGET="$(readlink "$SOURCE")"

  if [[ $SOURCE == /* ]]; then

  echo "SOURCE $SOURCE is an absolute symlink to $TARGET"

  SOURCE="$TARGET"

  else

  DIR="$( dirname "$SOURCE" )"

  echo "SOURCE $SOURCE is a relative symlink to $TARGET (relative to $DIR)"

  SOURCE="$DIR/$TARGET" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located

  fi

  done

  echo "SOURCE is $SOURCE"

  RDIR="$( dirname "$SOURCE" )"

  DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

  if [ "$DIR" != "$RDIR" ]; then

  echo "DIR $RDIR resolves to $DIR"

  fi

  echo "DIR is $DIR"

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南城县| 金平| 夏邑县| 民勤县| 盘锦市| 神农架林区| 荔波县| 老河口市| 乌兰察布市| 玉门市| 闻喜县| 海淀区| 金山区| 肇源县| 原阳县| 阿图什市| 新巴尔虎左旗| 上杭县| 凉山| 陆丰市| 泰兴市| 凤庆县| 桦川县| 富顺县| 喀什市| 无棣县| 慈利县| 府谷县| 五峰| 土默特右旗| 吴堡县| 梅州市| 宁乡县| 长子县| 阜城县| 水城县| 鸡西市| 沁源县| 太仆寺旗| 上林县| 田林县|