Linuxコマンド basename(ファイル名のパスからファイル名のみを表示する)

ファイル名のパスからディレクトリを取り除き、ファイル名のみを出力するコマンドについて解説。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

参考サイト:Man page of INSTALL

使用方法

指定した文字列からディレクトリ名部分を除いて表示します。また、拡張子を指定した場合は、ファイル名から拡張子を抜いて表示します。

指定するパスは、実際に存在するパスでなくても問題ありません。

実際はシェルスクリプト内で使用されることが多い。

書式

$ basename [オプション] パス [拡張子]
-a,
–multiple
複数の引数を取るようにする
-s 拡張子,
–suffix=拡張子
-aオプションを使う際に取り除く末尾後(拡張子)を指定する
-z,
–zero
行末を改行の代わりにNULL文字にする
オプション一覧表

サンプル

$ basename /home/centos/work/sample1.txt 
$ basename ./work/sample1.txt 
$ basename work/sample1.txt

実行結果

[centos@xxx work]$ basename /home/centos/work/sample1.txt 
sample1.txt
[centos@xxx work]$ basename ./work/sample1.txt 
sample1.txt
[centos@xxx work]$ basename work/sample1.txt 
sample1.txt
[centos@xxx work]$ 

パスから拡張子を除いてファイル名を表示する

引数に拡張子を指定すると拡張子を出力するファイル名から拡張子を除外することができる。

サンプル

$ basename /home/centos/work/sample1.txt .txt

実行結果

[centos@xxx ~]$ basename /home/centos/work/sample1.txt .txt
sample1
[centos@xxx ~]$