1. ホーム
  2. バッシュ

[解決済み】フォルダ内のファイル名を連番に変更する。

2022-04-01 14:52:32

質問

あるディレクトリのファイル名を連番に変更したい。ファイルの作成日を基準にしています。

sadf.jpg から 0001.jpg , wrjr3.jpg から 0002.jpg というように、先頭のゼロの数はファイルの総量に依存します(不要な場合は余分なゼロは不要です)。

解決方法は?

ループを使用してみてください。 let を、そして printf をパディングに使用します。

a=1
for i in *.jpg; do
  new=$(printf "%04d.jpg" "$a") #04 pad to length of 4
  mv -i -- "$i" "$new"
  let a=a+1
done

を使用しています。 -i フラグを使用すると、既存のファイルが自動的に上書きされるのを防ぐことができます。 --mv は、ダッシュを含むファイル名をオプションとして解釈してしまいます。