このエントリーをはてなブックマークに追加


ファイル名のみの取得とディレクトリパスのみの取得方法

フルパスのファイル名情報をファイル名のみとディレクトリパスのみに分解(分離)したい場合の例を以下に記します。


basenameとdirname

basenameコマンドとdirnameコマンドを使用することにより、ファイル名のみ、ディレクトリパスのみを取得することができます。

basenameコマンド

basenameコマンドは、ファイル名のみ取得することができます。
構文は以下の通りです。

basename <path/filename>

実行例

$ basename /var/log/boot.log 
boot.log

dirname

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コマンドの紹介でした。



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-10-21 (水) 22:55:26