Linux, コマンド · 1 min read · Sep 17, 2025

初心者のためのLinux basenameコマンドチュートリアル(例付き)

時々、コマンドラインで作業しているとき(特にシェルスクリプトを扱っているとき)、ファイル名だけに興味があるかもしれませんが、手元にあるのはファイルの完全なパスです。したがって、必要なのはパスのディレクトリコンポーネントを削除することです。

Linuxのbasenameコマンドは、ファイルまたはディレクトリパスのベース名を抽出するために使用されるユーティリティで、先頭のディレクトリコンポーネントやオプションのサフィックスを効果的に取り除きます。完全なパスが与えられると、basenameはファイル名またはパスの最後のセグメントのみを返し、スクリプトやファイル操作タスクで便利です。たとえば、パス/home/user/document.txtが与えられた場合、basenamedocument.txtを返します。さらに、ユーザーは削除するサフィックス(たとえば.txt)を指定でき、documentだけが残ります。このコマンドは、スクリプト内でのファイル名やパスの処理を簡素化し、自動化を強化し、さまざまなファイル管理プロセスを効率化します。

このチュートリアルでは、わかりやすい例を使って’bashname’の基本を説明します。しかし、その前に、ここにあるすべての例はUbuntu 24.04 LTSマシンでテストされていることを言及する価値があります。

Linux basenameコマンドの説明

basenameコマンドは、必要のないファイル名のコンポーネントを削除することを可能にします。以下はツールの構文です:

basename NAME [SUFFIX]  
basename OPTION... NAME...

そして、manページには次のように記載されています:

basename - ファイル名からディレクトリとサフィックスを削除する

NAMEの先頭のディレクトリコンポーネントを削除して印刷します。指定されている場合は、末尾のSUFFIXも削除します。

以下は、basenameコマンドの動作を理解するのに役立つQ&Aスタイルの例です。

Q1. basenameコマンドはどのように機能しますか?

デフォルトでは、ファイルへの完全なパスを入力として’bashname’コマンドを実行すると、コマンドは出力としてファイル名を返します。たとえば、次のコマンドを実行したとき:

basename /home/himanshu/Downloads/analytics.pdf

次の出力が得られました:

analytics.pdf

Q2. basenameは複数の入力を処理できますか?

はい、できます。しかし、これを実現するには、-aコマンドラインオプションを使用する必要があります。たとえば、次のコマンドを実行したとき:

basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

次の出力が得られました:

analytics.pdf  
test.png

Q3. basenameにファイル拡張子も削除させるにはどうすればよいですか?

時々、ファイル名だけを取得したいが、その拡張子は必要ない場合があります。これは、-sコマンドラインオプションを使用することで実現できます(サフィックスを入力として渡す必要があります)。

たとえば、次のコマンド:

basename -s .pdf /home/himanshu/Downloads/analytics.pdf

次の出力が得られました:

analytics

Q4. 各行の出力をNULで終わらせるにはどうすればよいですか?

デフォルトでは、出力の区切りに改行文字が使用されます。ただし、NULを区切りとして使用するようにbasenameを強制することもできます。これは、-zコマンドラインオプションを使用することで実現できます。

たとえば:

basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png

次の出力が得られました:

analytics.pdftest.png

ここではNUL文字は表示されません。出力をファイルにリダイレクトし、その後vimのようなエディタでファイルを開く必要があります。vimが表示した内容は次のとおりです:

結論

ご覧のとおり、basenameは非常に多機能なコマンドではありません - オプションは限られており、ここで説明したほとんどのオプションがこのチュートリアルで説明されています。これらの練習が終わったら、ツールのmanページに移動して、さらに詳しく学んでください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。