Unix command > パスからファイル名を取得する方法

更新日 2012-01-26
広告
basenameコマンドを使って、パスからファイル名を取得する方法を紹介します。ちなみに、パスからディレクトリ名を取得する方法もあります。
basenameコマンドの使い方は簡単です。 引数としてパスを渡してやるだけです。
basename$ basename /etc/mysql/my.cnf 
my.cnf
このように、ファイル名だけ出力してくれます。
さらに、引数に拡張子(suffix)も指定すると、ファイル名から拡張子を除いて、出力します。
basename$ basename /etc/mysql/my.cnf .cnf
my
シェルスクリプトを書いていると、パスからファイル名を取り出したくなることがあります。 そういう場合は、以下のようにbasenameの結果を変数に格納するとよいでしょう。
#!/bin/bash

filename=$(basename /hoge/foo/bar/sample.txt)
echo $filename
これを実行すると以下のようになります。
basename$ ./test-basename.sh 
sample.txt
広告
お問い合わせは sweng.tips@gmail.com まで。
inserted by FC2 system