Linux上で大量のファイルの名称を変更して連番にする方法

例えば、スマフォでスクリーンショットを大量にとった場合、基本的にはそのファイル名が、Screenshot_20230803-160207.pngといった名前になる。日時になっているわけだ。このままだと扱いにくいので、簡単な連番にしたい。もちろん、日時順を壊さないようにしたいのである。

簡単な方法は無いものかと探してみると、ファイル名を一括処理で連番に変更する方法(1行コピペ)というページがあった。

やり方は簡単、ファイルが格納されているフォルダにおいて、以下を実行するだけだ。

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

ただし、以下に注意。

  • lsで表示される順番で連番化される。
  • %03dの場合、001,002などの三桁の連番になる。
  • 拡張子は、この例の場合「.jpg」のみになる。

awkの仕様がわかっていないので、なぜこんな簡単なコマンドでファイル名変換できるのかわからないのだが、ともあれこれでうまくいく。

未分類

Posted by ysugimura