次のような名前のフォルダーにたくさんの写真があります。
foo.png
foo.png.~1~
foo.png.~2~
など
みたいな名前にしてほしい
foo.png
foo1.png
foo2.png
など
これどうやってするの?Ubuntu Server 13.04 を使用しています
ありがとう!
-はい、投稿する前に検索しましたが、役に立ちそうなものは見つかりませんでした。
次のような名前のフォルダーにたくさんの写真があります。
foo.png
foo.png.~1~
foo.png.~2~
など
みたいな名前にしてほしい
foo.png
foo1.png
foo2.png
など
これどうやってするの?Ubuntu Server 13.04 を使用しています
ありがとう!
-はい、投稿する前に検索しましたが、役に立ちそうなものは見つかりませんでした。
次のような bash スクリプトを使用して、各ファイル名をループします。
#!/bin/bash
for f in *
do
name=(${f//./ }) # split the filename on period. Note - the space matters!
number=(${f//\~/ }) # similar trick to find the number between tildes
newName=${name[0]}${number[1]}${name[1]} # construct the new name from array elements
echo "now you can rename " $f " to " $newName # print out the new name as a check
done
「rename」コマンドを意図的に省略し、代わりに「echo」に置き換えました。これが意図したとおりに動作するかどうかを確認してから、echo
行を次のように変更します
mv $f $newName
正常に動作していることを確認するまで、一括で名前を変更するのではなく、ファイルを新しいディレクトリにコピーすることをお勧めします。大量のファイルが上書きされたり、破損したりすることに責任を負いたくありません。もちろん、これは次のようなものになります
mv $f newDirectory/$newName