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,^\(.*/\)?,匹配 / 符號前所有的東西,第二個 [^/]* ,匹配剩餘部分不包含 / 的部分。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章