ディレクトリ名だけを取得する

カレントディレクトリへのパスではなくて、その名前だけを取得する方法が思い出せぬ。

文字列操作で強引に攻めても良いんだけど、きっとスマートな方法があるはず。そう思い始めてから1時間あまり。2年前の自分メモを見つけて、ようやく思い出した。そうそう、これこれ。

${PWD##*/}

これで、カレントディレクトリのパスについて、その先頭から「*/」パターンの最長マッチ部分が取り除かれ、無事ディレクトリ名だけを取得できる。おー、すげー、暗号かコレは。

ついでに、この周辺技をメモ。

# 先頭から最長マッチ
${param##word}

# 先頭から最小マッチ ${param#word}
# 末尾から最長マッチ ${param%%word}
# 末尾から最小マッチ ${param%word}

「word」が展開されて検索パターンが生成される。このパターンが「param」とマッチする場合、該当部分を取り除くことができるというシェル技。

bashの基本っぽいけど、このあたりは深いなあ。

このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/334