ファイル名などを抽出する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

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

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リカレントテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメント

  1. ほげ より:

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

    1. リカレントテクノロジー より:

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

      1. ほげ より:

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

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

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リカレントテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する