1. 程式人生 > >linux 下獲得當前目錄,上級目錄,資料夾名

linux 下獲得當前目錄,上級目錄,資料夾名

$PWD  /pwd   當前目錄

 dname= $(dirname "$PWD")  上級目錄

basename '$PWD'  當前資料夾名

!=====以下轉載 

刪除包含特定字元的行:

g/pattern/d   

刪除不包含指定字元的行:

v/pattern/d

使用 ## 拆分變數
${var##pattern} 可以從 $var 變數中,去掉可以匹配 pattern 最大長度的字串,所以,要獲得目錄名,可以:


cd /var/log/squid
echo ${PWD##*/}
squid


$PWD 是儲存目錄完整路徑的環境變數,pattern 就是 */,也就是去掉了前面所有的上級目錄。


使用 awk 和 rev
cd /usr/share/cups/data
pwd | rev | awk –F \/ '{print $1}' | rev
data


把結果分步顯示,你就知道原理了:
pwd
/usr/share/cups/data
pwd | rev 
atad/supc/erahs/rsu/
pwd | rev | awk –F \/ '{print $1}'
atad
pwd | rev | awk –F \/ '{print $1}' | rev
data


-F 選項是指定分隔符,目錄之間分隔符為 /。


使用 sed
cd /home/smith/music
pwd | sed 's,^\(.*/\)\?\([^/]*\),\2,'
music


第一個 pattern,^\(.*/\)?,匹配 / 符號前所有的東西,第二個 [^/]* ,匹配剩餘部分不包含 / 的部分。