ファイル拡張子を保持しながら、ディレクトリ内のすべてのファイルの名前を変更します。

ファイル拡張子を保持しながら、ディレクトリ内のすべてのファイルの名前を変更します。

名前を変更する必要がある約1200個のファイルがあるフォルダがあります。ほとんどのファイル拡張子は.jpg、.gif、.pngです。

ここにいくつかの例があります。

    Awesome\ FB\ \ (462).jpg   
    Bonus\ FB\ Cover\ Pics\ (80).jpg
    Awesome\ FB\ \ (463).jpg   
    Bonus\ FB\ Cover\ Pics\ (81).jpg
    Awesome\ FB\ \ (464).jpg   
    Bonus\ FB\ Cover\ Pics\ (82).jpg
    Awesome\ FB\ \ (465).jpg   
    Bonus\ FB\ Cover\ Pics\ (83).jpg

私は試した:

    rename 's/\.{???} $/-img4sm.{???}/' ./*.{???}

私もこれを試しましたが、{???}の代わりに.jpgまたは.gifを配置して{}を[]に置き換えました。

私も次のことを試しました。

    find . -type f -iname '*.???' -exec rename 's/\.{???} $/-img4sm.{???}/' ./*.{} +

エラーメッセージなしでCloudLinux(CentOS)でこのコマンドを正常に使用しましたが、ファイル名は変更されませんでした。

助けてください。ありがとうございます!

ベストアンサー1

残念ながら、renameこれはUnixのバージョンによって意味が異なります。特に、Fedoraでは、CentOSでは、renameあなたが使用しているようなPerl式ではなく単純な文字列だけを受け入れるようになります(Debianでは動作します)。

しかし、"-img4sm"だけを追加したいようです。 .jpg、.png、および.gifサフィックスの前に名前が変更されたバージョンを試してください。

rename -- .jpg -img4sm.jpg *.jpg
rename -- .png -img4sm.png *.png
rename -- .gif -img4sm.gif *.gif

これらのコマンドが期待どおりに機能しない場合は、必ずディレクトリをバックアップとしてどこかにコピーしてください。


perl必要に応じて、より複雑なスクリプトをインストールできます。rename cpanからすでに知っている場合は、cpanコマンドを使用するか、そのページのリンクをダウンロードしてください。タールのダウンロード。 tar を解凍し、次のコマンドを使用してスクリプトを「ビルド」します。

tar xf rename-1.9.tar.gz
cd rename-1.9
perl Makefile.PL 
make
mv bin/rename ~/bin/prename

最後はmvPATHのプライベートbinディレクトリです。prename既存の名前変更コマンドとの混同を避けるには、この名前を使用してください。その後、これを使用して操作を実行できます。たとえば、次のようになります。

prename -n  's/\.(jpg|png|gif)$/-mg4sm.$1/' -- *.{jpg,gif,png}

ここでのアイデア-nは、実際に起こることをせずに何が起こるのかを示すことです。

おすすめ記事