ファイル名を一括リネームする方法|ターミナルでまとめて名前変更|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
ファイル名を一括リネームする方法|ターミナルでまとめて名前変更|UNIX Cafe

UNIX Cafe | 第26回

目次

はじめに|写真やファイル名がバラバラだと困る理由

デジカメやスマホで撮影した写真は、
IMG_0001.JPG や DSC_1234.JPG のような名前で保存されます。

枚数が少ないうちは気になりませんが、

  • 写真が何百枚、何千枚と増えてきたとき
  • 年や旅行ごとに整理したくなったとき
  • バックアップや共有をするとき

ファイル名が分かりにくいことが、大きなストレスになります。

この記事では、
ターミナルを使って、ファイル名をまとめて分かりやすく変更する方法を、
初心者の方にも分かるよう、順番に紹介していきます。

この記事でできること

この記事を読み終えると、次のことができるようになります。

  • 複数のファイル名を一度に変更できる
  • 写真を連番(01, 02, 03…)で整理できる
  • ファイル名の一部をまとめて置き換えられる
  • mac / Linux で安全にリネーム作業ができる

まずは基本:mv でファイル名を変更する

mv コマンドで名前を変更する(1ファイル)

ファイル名を変更する一番基本の方法が、mv コマンドです。

mv old.jpg new.jpg

このコマンドは、

  • old.jpg という名前のファイルを
  • new.jpg という名前に変更する

という意味になります。

mv は「移動(move)」のコマンドですが、
同じフォルダ内で使うと 名前の変更(リネーム) になります。

1枚だけ名前を直したい場合は、これで十分です。

複数ファイルを連番でリネームする方法

for 文を使って一括リネームする

写真がたくさんある場合は、for 文を使うと一気に整理できます。

count=1
for file in *.jpg
do
    mv "$file" "photo_${count}.jpg"
    count=$((count + 1))
done

このスクリプトでは、

  • *.jpg で「フォルダ内の jpg ファイルすべて」を対象に
  • photo_1.jpgphoto_2.jpg …という名前を順番につけています

写真フォルダの整理や、スキャン画像の整理にとても便利です。

3桁連番(000.jpg〜)で整理したい場合

枚数が多い場合は、3桁連番にしておくと並びがきれいになります。

count=0
for file in *.jpg
do
    printf -v newname "%03d.jpg" "$count"
    mv "$file" "$newname"
    count=$((count + 1))
done

%03d は、

  • 数字を3桁で
  • 足りない分は 0 で埋める

という指定です。

その結果、000.jpg001.jpg002.jpg … のような連番になります。

Rename Lab(リネーム練習用 Web アプリ)

  • rename コマンドはとても便利ですが、最初は少し不安に感じるかもしれません。
  • Rename Lab は、rename のイメージを体験できる学習用の Web アプリです。
  • 実際のファイルは触りませんので、失敗しても Reset ボタンですぐ元に戻せます。
  • 黒い画面が怖く感じる前に、まずはブラウザでゆっくり試してみてください 。
ミナちゃん

いきなりターミナルはちょっとドキドキしますよね…
アプリでremaneの雰囲気を確かめてから次へ進んでくださいね。

👉 Rename Lab(ブラウザで試せるリネーム体験)

rename コマンドで名前をまとめて置き換える

rename コマンドとは?

rename は、ファイル名の一部をまとめて変更できるコマンドです。

Linux ではよく使われますが、
mac では最初から入っていないため、追加インストールが必要です。

mac でのインストール方法

brew install rename

ファイル名の先頭を置き換える

rename 's/IMG_/pic_/' *.JPG

この例では、

  • IMG_ という文字列を
  • pic_ に置き換えています

カメラで撮った写真の整理にぴったりです。

先頭に文字を追加(プレフィックス)

rename 's/^/trip_/' *.jpg

すべてのファイル名の先頭に、trip_ という文字を追加します。

末尾に文字を追加(サフィックス)

rename 's/$/_2024/' *.jpg

ファイル名の最後に _2024 を追加します。
年ごとの整理に便利です。

不要な文字列を削除する

rename 's/-edited//' *.jpg

-edited という文字列を、ファイル名からまとめて削除します。

実行前に確認する(とても大切)

rename -n 's/IMG_/pic_/' *.jpg

-n を付けると、

  • 実際には変更せず
  • 「どう変わるか」だけを表示

してくれます。

いきなり実行するのが不安なときは、
必ずこの方法で確認してから作業しましょう。

失敗しないための注意点

ファイル名を一括で変更するときは、
次の点を意識すると安心です。

  • 作業前にフォルダをコピーしておく
  • 元データは別フォルダに保存する
  • rename -n で事前確認をする

少しの準備が、あとで大きな安心につながります。

まとめ|ファイル名整理はターミナルが最速

今回紹介した方法を使うと、

  • mv:1ファイルの基本操作
  • for + mv:連番リネームに便利
  • rename:置き換え・追加・削除が一気にできる

というように、
状況に応じて最適な方法を選べるようになります。

写真や書類が増えてきたら、
ファイル名を整えるだけで、管理は驚くほど楽になります。

ユニ先生

次回は、“ファイルの中身を調べる”方法を紹介しようと思うよ。

ミナちゃん

楽しみです〜!

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次