【basename】Linuxでファイル名からディレクトリや拡張子を除去するコマンド

Linuxのbasenameコマンドを使うことで、ファイル名からディレクトリや拡張子を除去できます。

basenameコマンドの使い方

basenameコマンドの書式は以下の通りです。

basneme ファイル [末尾から除去する文字列]

basenameコマンドは文字列を加工して表示するものであり、ファイル自体の存在チェックは行いません。

ファイル名のみを表示する

ファイル名のみを表示する場合は、以下のようにファイルパスを指定します。

$ basename /home/user/data.txt
data.txt

コマンドを実行するとファイル名のみが表示されます。

ファイル名の末尾を削除

1つ目の引数にファイルパスを指定し、2つ目の引数には除去したい文字列を指定します。

$ basename data.txt .txt
data

この例では、.txtと指定したファイル名の末尾が一致するので、dataという文字列が表示されます。

また、「-s」オプションの後に除去したい文字列を指定し、その後にファイル名を指定することで上の例と同じ動作になります。

$ basename -s .txt data.txt
data

もし除去する文字列がファイル名の末尾と一致しなかった場合は、指定したファイル名がそのまま表示されます。

$ basename data.txt .jpg
data.txt

複数ファイルを指定する

「-a」オプションを使うことで複数のファイルを同時に指定できます。

$ basename -s .txt -a data.txt data2.txt 
data
data2

「-a」オプションを使うときに除去する文字列を指定したい場合は、「-s」オプションを使って文字列を指定します。


イベント