ファイル名などを抽出するbasenameコマンドの使い方まとめ【Linuxコマンド集】

basenameコマンド
  • このエントリーをはてなブックマークに追加
  • Pocket

basenameはファイルやディレクトリのパス名からファイル名やディレクトリ名を抽出するコマンドだ。

このページでは基本的なbasenameの使い方を解説する。応用方法も併せて紹介するので、ぜひ、この機会に覚えておいてほしい。

コマンドの基本

コマンドの基本動作

使い方は、次のとおり簡単だ。

$ basename パス名

パス名からファイル名を取り出すにはこれだけだ。

パス名「/home/Jim/music/MySound.wav」からファイル名「MySound.wav」を抽出する場合は、次のコマンドだ。

$ basename /home/Jim/music/MySound.wav

basenameコマンドの基本

ファイル名「MySound.wav」が抽出できた。

拡張子を抽出しない

抽出内容にファイル名の拡張子を含めないこともできる。

その場合の書式は次の通りだ。

$ basename パス名 拡張子

拡張子はピリオドなどの接続語も含め、入力する。

パス名「/home/Jim/music/MySound.wav」からファイル名「MySound.wav」を抽出し、拡張子.wavを含めず表示する場合は、次のコマンドだ。

$ basename /home/Jim/music/MySound.wav .wav

basename 拡張子

ファイル名「MySound」が抽出できた。

コマンドの動作原理

実はbasenameコマンドは、パス名に指定されている文字に対し、一番右側の/以降を抜き出している動作だ。

拡張子が指定されているのであれば、そこから拡張子を削除する。

つまり、存在しないパス名を指定してもエラーにならず、適宜結果を表示するわけだ。

ただし、パス名にワイルドカードを指定すると、ファイルを検索しようとする動きを見せる。

$ basename hogehoge/*

一番初めにワイルドカードに該当するファイルが表示されるようになる。

basename関連コマンド

最後にbasenameコマンドに関連して、基本的なパス名を操作するコマンドも紹介しておく

dirnameコマンド

パス名からファイル名を削除したものを表示する。

まとめ

basenameコマンドにより、パス名からファイル名を抽出する方法を解説した。

シェルスクリプトなどで使える場面があるコマンドなので、存在だけでも知っておこう。

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

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

  1. ほげ より:

    そのコマンドではbasenameにワイルドカードが渡っていないと思います。
    カレントディレクトリのファイル名,ディレクトリ名が渡っていると思います。
    shell次第ですが、bashですと
    basename '*'
    または
    basename \*
    としなくてはなりません。

    1. リナックスアカデミー より:

      ご指摘ありがとうございます。修正いたします。

      1. ほげ より:

        修正されたようですが、意図が伝わっていないようです。

        $ basename hogehoge/*
        上記のコマンドでは*はshellによって展開されますので、basenameには*は渡されず、展開後の文字列が渡されます。
        ですので、この場合はbasenameがワイルドカードの処理をしていることにはなりません。

コメントを残す

*