フルパスのファイル名情報をファイル名のみとディレクトリパスのみに分解(分離)したい場合の例を以下に記します。
basenameコマンドとdirnameコマンドを使用することにより、ファイル名のみ、ディレクトリパスのみを取得することができます。
basenameコマンドは、ファイル名のみ取得することができます。
構文は以下の通りです。
basename <path/filename>
実行例
$ basename /var/log/boot.log boot.log
dirnameコマンドは、ファイル名を除きパス名のみ取得することができます。
構文は以下の通りです。
dirname <path/filename>
実行例
$ dirname /var/log/boot.log /var/log
以下に/etc以下のサブディレクトリを含むファイル一覧をfindで出力し、csv形式で出力してみます。
for T in `find /etc`; do P=`dirname $T`; F=`basename $T`; echo "$P,$F"; done
実行すると以下のようになります。
<省略> /etc,console-setup /etc/console-setup,compose.VISCII.inc /etc/console-setup,compose.ISO-8859-6.inc /etc/console-setup,compose.ISO-8859-4.inc /etc/console-setup,compose.ISO-8859-5.inc /etc/console-setup,compose.ISO-8859-10.inc /etc/console-setup,compose.ISO-8859-9.inc /etc/console-setup,compose.TIS-620.inc /etc/console-setup,cached.kmap.gz /etc/console-setup,compose.ISIRI-3342.inc /etc/console-setup,compose.ISO-8859-7.inc /etc/console-setup,compose.GEORGIAN-ACADEMY.inc /etc/console-setup,compose.CP1255.inc /etc/console-setup,compose.ISO-8859-11.inc /etc/console-setup,compose.ISO-8859-13.inc /etc/console-setup,compose.ISO-8859-1.inc /etc/console-setup,compose.KOI8-R.inc /etc/console-setup,compose.ISO-8859-15.inc /etc/console-setup,compose.ARMSCII-8.inc <省略>
以上、basenameとdirnameコマンドの紹介でした。