フォルダ内のファイル名を一括で連番ファイル名に変更する方法【Ubuntu】

こんにちは、minoruです。

Ubuntu(Xubuntu等含む)で、フォルダ内にあるファイルを、全部まとめて一括で連番にするコマンドの備忘録。

まず Ctrl + Alt +T で真っ黒のターミナル画面を呼び出す。

以下のコマンドを入力。

cd ~/ピクチャ/岡副麻希さん画像フォルダ

まずはCDコマンドでターミナルの操作基準位置を、改名したいファイルがあるフォルダまで移動させます。

ls | awk '{ printf "mv %s okazoe_maki_%03d.jpg\n", $0, NR }' | sh

最後はエンターを押すのを忘れずに。

%sは先頭のlsコマンドで拾ったファイル名をそのまま使うと言う事。つまり元ファイル名を指しています。

上記は私のピクチャフォルダ内にある岡副麻希さんの画像を、連番にする時に使用したコマンドなので、okazoe_maki_の部分は無くても良いしvideo_とかtext-とか適宜好きなように。

%03dがミソで、001から始まる連番を振ってくれる。4桁なら%04dと言った具合。

.jpgの部分は元々のファイルの拡張子を入れよう。画像の場合、.jpegと.jpgが混在していても問題は無いが、.pngや.webpなど、別の種類の画像が混在する場合は、まずは画像フォーマットを揃えてから改名する事をおすすめします。

※同じファイル名が存在する時にはエラーが出るので注意!
※フォルダー内にサブフォルダーがあると、そのサブフォルダーの名前が変更されてしまいます。サブフォルダー内のファイル名には影響がありません。

ファイル名にスペースが入っている場合などは以下のシェルスクリプトが良いかも知れない。詳しい解説は後日にする。

find -name '*.png' | while read i
do
a=$(( a+1 ))
b=$(printf "%03d" "${a}")
mv "$i" "$b.png"
done

シェアする

  • このエントリーをはてなブックマークに追加

フォローする