カテゴリ: Linuxコマンド集 更新日: 2025/10/17

basenameコマンドとは?Linuxでパスからファイル名を抽出する基本

basenameコマンドとは?Linuxでパスからファイル名を抽出する基本
basenameコマンドとは?Linuxでパスからファイル名を抽出する基本

先生と生徒の会話形式で理解しよう

生徒

「Linuxで、ファイルのパスからファイル名だけを取り出す方法ってありますか?」

先生

「その場合は、basenameというコマンドを使うと便利ですよ。」

生徒

「basenameってどんなコマンドなんですか?」

先生

「じゃあ、一緒にbasenameコマンドの使い方を学んでみましょう!」

1. basenameコマンドとは?

1. basenameコマンドとは?
1. basenameコマンドとは?

basenameコマンドは、Linuxでパス(ファイルの場所)からファイル名だけを取り出すために使うコマンドです。たとえば、/home/user/document.txtという長いパスがあったときに、「document.txt」というファイル名だけを取り出すことができます。

ファイルのパスには、フォルダ(ディレクトリ)の名前や区切りが含まれていて、初心者には少しわかりにくいことがあります。しかしbasenameを使えば、その中から必要な名前だけを簡単に取り出すことができます。

2. basenameコマンドの基本的な使い方

2. basenameコマンドの基本的な使い方
2. basenameコマンドの基本的な使い方

まずは、最も基本的な使い方を見てみましょう。以下のように、パスを引数として指定します。


basename /home/user/file.txt
file.txt

このように、パスの中から最後の部分、つまりファイル名だけが表示されるのが特徴です。

3. ディレクトリでも使えるの?

3. ディレクトリでも使えるの?
3. ディレクトリでも使えるの?

basenameコマンドは、ファイルだけでなくディレクトリにも使えます。例えば次のような場合です。


basename /var/log/apache2
apache2

この例では、「/var/log/apache2」というフォルダの中から、最後の「apache2」だけを取り出しています。フォルダでも最後の部分だけを抜き出せる、ということです。

4. 拡張子を取り除く使い方

4. 拡張子を取り除く使い方
4. 拡張子を取り除く使い方

basenameコマンドには、ファイル名から特定の文字列(通常は拡張子)を削除する機能もあります。次のように使います。


basename report.csv .csv
report

このように、指定した拡張子部分「.csv」だけを削除して表示することができます。「.txt」や「.log」なども同じように扱えます。

5. basenameコマンドの使用例をもっと見てみよう

5. basenameコマンドの使用例をもっと見てみよう
5. basenameコマンドの使用例をもっと見てみよう

実際に現場でよく使われるケースをいくつか紹介します。以下のような場面で活躍します。

スクリプト内でファイル名を取り出したいとき


filepath="/home/user/data/report.log"
filename=$(basename "$filepath")
echo "$filename"
report.log

このように、変数の中にあるパスから、ファイル名だけを変数に取り出す使い方は非常に多くの場面で活躍します。

シェルスクリプトでログ出力先を決めたいとき


logfile="/var/log/nginx/access.log"
basename "$logfile" .log
access

このように拡張子だけを除いたログファイル名を使うことで、処理の流れを柔軟に制御することができます。

6. dirnameとの違いに注意しよう

6. dirnameとの違いに注意しよう
6. dirnameとの違いに注意しよう

basenameと似た名前のコマンドにdirnameがあります。こちらはパスの中の「フォルダの部分」だけを取り出すコマンドです。


dirname /home/user/file.txt
/home/user

このように、basenameファイル名だけを取り出すのに対して、dirnameそのファイルがあるフォルダの場所を取り出す、という違いがあります。

7. basenameのオプションは少なめ

7. basenameのオプションは少なめ
7. basenameのオプションは少なめ

basenameは非常にシンプルなコマンドなので、オプションはほとんどありません。主に次のようなものがあります。

  • --version:バージョン情報を表示
  • --help:使い方のヘルプを表示

basename --version
basename (GNU coreutils) 8.32
Copyright (C) 2020 Free Software Foundation, Inc.

8. basenameコマンドを活用するコツ

8. basenameコマンドを活用するコツ
8. basenameコマンドを活用するコツ

basenameは、単体で使うだけでなく、他のコマンドやスクリプトと組み合わせることで真価を発揮します。特に、for文などの繰り返し処理の中で、ファイル名を取り出して処理を分けるときなどに非常に便利です。


for path in /home/user/*.txt; do
  name=$(basename "$path" .txt)
  echo "ファイル名は $name です"
done
ファイル名は report です
ファイル名は data です
ファイル名は memo です

このように、複数のファイルに対して一括でファイル名を取り出して処理することができます。

関連記事:
カテゴリの一覧へ
新着記事
touch --no-createオプションの使い方を完全ガイド!初心者でもわかるファイルの新規作成防止法
basenameのSUFFIX指定で拡張子を除いてファイル名を取得する方法を解説!初心者向けLinuxコマンド講座
mv -tオプションの使い方|移動先ディレクトリを先に指定する便利な方法
lsコマンドの-rオプション|逆順(降順)でファイルを並べる方法を初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.2
Java&Spring記事人気No2
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
No.3
Java&Spring記事人気No3
rm -Rオプションとは?初心者でもわかる再帰的にディレクトリを削除する方法
No.4
Java&Spring記事人気No4
Linuxコマンドpwd --help解説|オプション一覧を表示して使い方を確認する方法