ファイルの末尾に英数字拡張子を追加するOSX用のbashスクリプトを作成しようとしています。
ランダムな6文字を生成する方法が見つかりません。前のファイル名_cod_45fg43.zip
スクリプトは次のとおりです。
for fname in *.zip
do
CODE= ???
CODESTRING="_cod_$CODE"
mv "$fname" "${fname%.zip}$CODESTRING.zip"
done
ベストアンサー1
あなたが使用できるmktemp
:
$ mktemp foobarXXXXXX
foobarAU7TyS
$ mktemp foobarXXXXXX
foobardDqS61
$ mktemp foobarXXXXXX
foobarioCZw2
あなたの例では、次のようになります。
mv "$fname" "$(mktemp "${fname%.zip}"XXXXXX.zip)"
しかし、いくつかのテストをしなければなりません。 "X"で終わるzipファイルでは奇妙なことが起こります...;)
利点は、mktemp
可能性に関係なく、ファイル名がすでに存在しないことを保証することです。もちろん、上記の例では、もともとエラーをチェックしないと役に立ちません。
または。mv
--backup
(最初にこれを行う理由によって異なります。)