bash の変数展開とファイル名操作

Nid: 661

ファイルへのフルパス

$ fullpath=/home/claire/.ssh/id_dsa.pub

ディレクトリ名

$ dirname $fullpath
/home/claire/.ssh
$ echo "${fullpath%/*}" # 後方からパターン最短マッチ部分を削除
/home/claire/.ssh

ファイル名

$ basename "${fullpath}"
id_dsa.pub
$ filename=`echo "${fullpath##*/}" | tee /dev/stderr` # 前方からパターン最長マッチ部分を削除
id_dsa.pub

ファイル名拡張子

$ echo "${fullpath##*.}" # 前方からパターン最長マッチ部分を削除
pub

基底名

$ echo "${filename%%.*}" # 後方からパターン最長マッチ部分を削除
id_dsa