ファイル名の削除と名前変更

ファイル名の削除と名前変更

ディレクトリから現在のファイル名を削除して英数字のファイル名に変更するには、どの名前変更コマンドを使用できますか?

例えばgg0001、、、gg0002ちょっと待って?私はこのコマンドがすべての種類の拡張子を持つファイルを処理できるようにしたいです。その拡張を維持したい。

rename私はPerlを使用することを好みます。

このコマンドを試しましたが、ファイル名の前に「gg」が追加されますが、元のファイル名を変更したいと思います。

rename 's/^/gg_/' *

ベストアンサー1

実際にはコマンドは必要なく、renameシェルで直接実行できます。

c=0; for i in *; do let c++; mv "$i" "gg_$(printf "%03d" $c)${i#"${i%.*}"}"; done

printf "%03d" $c変数は印刷され、必要$cに応じて前にゼロが3つ追加されます。let c++カウンター増加() $c。拡張子を抽出します${i#"${i%.*}"}。関連コンテンツをもっと見るここ

私はこれを使用しませんrename。計算できないと思います。有効なPerlコンストラクタにs/.*/$c++/e失敗し、計算を実行する他の方法はありません。これはまだループで実行し、他のものがカウンタを増やす必要があることを意味します。それは次のとおりです。

c=0;for i in *; do let c++; rename -n 's/.*\.(.*)/'$c'.$1/' "$i"; done

しかし、より簡単な方法を使用するよりも利点はありませんmv

おすすめ記事