これが私の問題です:500個の画像が含まれるフォルダーがあります:
1.jpg
2.jpg
3.jpg
等々..
そのフォルダをコピーし、同じ写真を501から1000に名前を変更する必要がありますが、次のようにします。
1.jpg becomes 501.jpg
2.jpg becomes 502.jpg
3.jpg becomes 503.jpg
....
標準の名前変更コマンドを使用する場合:
i=501;for img in $(find . -iname '*.jpg'); do echo -n "Converting $img"; mv $img $i.jpg && echo $i && ((i++)); done
501から1000の画像を注文しますが、それらはすべて散在しています:
23.jpg becomes 501.jpg,
66.jpg becomes 502.jpg
...
(それらは正しい順序ですが、それらを混同します)
私はそれがおそらく欠けている1つのコマンドであることを知っています...
Thunarを試してください。これはXfceのデフォルトのファイルマネージャーです。非常に軽量で、便利な一括名前変更ツールが付属しています。ターミナルで次のコマンドを実行してThunarをインストールできます。
Sudo apt-get install thunar
おそらくUbuntuソフトウェアからもインストールできるでしょう。
ナンバリングに加えて、このユーティリティは次のアクションをサポートしています。
find
コマンドは、「ディレクトリ」順にファイルを検索します(23.jpg
、66.jpg
、...)。検索後に|sort
を追加できます。
しかし、メソッドは複雑すぎます。
for i in $( seq 1 500 ) ; do
j=$(( $i + 500 ))
mv $i.jpg $j.jpg
done
rename
コマンドを使用。
rename -n 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg
または、純粋なbash
で シェルパラメーター展開 を使用します。
for FILE in *.jpg; do
mv "$FILE" "$(( ${FILE%.jpg}+500 )).jpg"
done
あなたが正しく尋ねていることを理解していれば、デフォルトの名前変更ツールを使用してそれを行うことができると思います:
rename 's/^(\d+)/sprintf("%d",$1+500)/e' *.jpg -vn
変更を有効にするには、テスト後に-vn
(詳細-アクションなし)スイッチを削除する必要があります。
シェルコマンドだけでこれを達成する別の方法
count = 1; for i for ls
; do mv $ i CN $((count ++))。$ {i ## *。};やった