カテゴリ: Linuxコマンド集 更新日: 2026/01/05

basenameの--multipleオプションで複数パスを一括処理!初心者にもわかるLinuxコマンド入門

basename --multipleオプション|複数のパスをまとめて処理する方法
basename --multipleオプション|複数のパスをまとめて処理する方法

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

生徒

「basenameって1個ずつしかファイル名を取り出せないんですか?」

先生

「実は、複数のパスをまとめて処理できる--multipleオプションがあるんですよ。」

生徒

「へぇ、それなら一括で処理できて便利ですね!どう使うんですか?」

先生

「それじゃあ、一緒に--multipleの使い方を学んでみましょう。」

1. basenameコマンドとは?

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

basenameコマンドは、LinuxやUnixで使われる基本的なコマンドのひとつです。ファイルのパス(道筋)からファイル名だけを取り出すことができます。

たとえば、/home/user/image.pngというファイルのパスがあった場合、basenameを使えばimage.pngだけを表示できます。

2. 通常のbasenameの使い方(おさらい)

2. 通常のbasenameの使い方(おさらい)
2. 通常のbasenameの使い方(おさらい)

まずは基本的な使い方を見てみましょう。


basename /home/user/music/song.mp3
song.mp3

このように、ファイル名だけを表示できます。ただし、この方法では1つのファイルパスしか扱えません。

3. --multipleオプションとは?

3. --multipleオプションとは?
3. --multipleオプションとは?

--multipleは、basenameコマンドに用意された複数のパスを一括で処理するためのオプションです。通常のbasenameでは1つのパスしか指定できませんが、--multipleを使えば、2つ以上のパスをまとめて処理できます。

このオプションは、「毎回1つずつコマンドを打つのが面倒」「複数のファイル名だけを一括で取り出したい」といった場面でとても便利です。

4. --multipleの基本的な使い方

4. --multipleの基本的な使い方
4. --multipleの基本的な使い方

実際の使い方を見てみましょう。


basename --multiple /home/user/photos/cat.jpg /home/user/photos/dog.jpg
cat.jpg
dog.jpg

このように、2つのパスを一度に処理して、それぞれのファイル名だけを出力できます。

5. 拡張子を除外したい場合は?

5. 拡張子を除外したい場合は?
5. 拡張子を除外したい場合は?

--multipleを使う場合でも、SUFFIX(接尾辞)を一緒に指定することができます。


basename --multiple --suffix=.jpg /images/a.jpg /images/b.jpg
a
b

このように--suffixオプションを追加することで、拡張子.jpgを除外してファイル名だけを取得できます。

6. 実行結果の順番に注意

6. 実行結果の順番に注意
6. 実行結果の順番に注意

--multipleオプションでは、指定したパスの順番どおりに出力されます。ファイル名だけを表示したいときに、順序が大事な場合もあるので注意しましょう。


basename --multiple /data/x.txt /data/y.txt /data/z.txt
x.txt
y.txt
z.txt

このように、指定した順番どおりにファイル名が表示されます。

7. lsコマンドとの組み合わせ例

7. lsコマンドとの組み合わせ例
7. lsコマンドとの組み合わせ例

大量のファイル名を処理したいときは、lsコマンドと組み合わせてxargsを使うことで、さらに便利になります。


ls /var/log/*.log | xargs basename --multiple
syslog.log
auth.log
kernel.log

このように、.logファイルのパス一覧からファイル名だけを取り出す処理が一括でできます。

8. dirnameとの違いを確認しよう

8. dirnameとの違いを確認しよう
8. dirnameとの違いを確認しよう

basenameとよく似たコマンドにdirnameがあります。こちらは、ファイル名ではなく、パス(フォルダ部分)だけを取り出すためのコマンドです。


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

これに対してbasenameはファイル名だけを出力します。


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

それぞれ役割が異なるので、場面に応じて使い分けましょう。

9. basename --multipleが使えない場合の代替方法

9. basename --multipleが使えない場合の代替方法
9. basename --multipleが使えない場合の代替方法

環境によっては、古いバージョンのbasenameでは--multipleオプションが使えないことがあります。

その場合は、for文を使って1つずつ処理する方法もあります。


for path in /tmp/a.txt /tmp/b.txt; do basename "$path"; done
a.txt
b.txt

これは少しだけプログラミングっぽい書き方になりますが、複数ファイルを処理する裏技のような使い方です。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
Linuxのls --full-timeオプションを完全ガイド!初心者でもわかるタイムスタンプのフル表示方法