拡張子を削除して複数のファイルの名前を変更するにはどうすればいいですか?

拡張子を削除して複数のファイルの名前を変更するにはどうすればいいですか?

次のような名前の tiff ファイルがいくつかあります:

sw.001.tif
sw.002.tif
...

.tif各ファイルの末尾にあるを削除したいのですが、renameコマンドを使用してこれを行うにはどうすればよいですか?

答え1

perlrenameDebianでは とも呼ばれることが多いprename)またはこの派生語( renameDebian 上のパッケージ):

rename 's/\.tif$//' *.tif

util-linux rename(Red Hat、rename.ulDebian で一般的に見られるもの):

rename -- .tif '' *.tif

(その名前blah.tiffany.tifは に変更されることに注意してくださいblahfany.tif

答え2

名前を変更しない場合は、次のようにします。

$ for i in *.tif; do mv -i $i `basename $i .tif`; done

(-i はファイルの置き換えを警告します)

答え3

rename -- .oldext .newext *.oldext

これにより、古い拡張子が新しい拡張子に置き換えられます。拡張子を単純に削除するには、引数として空の文字列を明示的に渡すことができます。

rename -- .gz.tmp  '' *.gz.tmp

上記のコマンドを実行すると、.gz.tmp現在のフォルダー内にある拡張子を持つすべてのファイルの名前が に変更されますfilename.gz

記事を参照してください:Linux: 複数のファイルのファイル拡張子を削除する詳細については。

答え4

perl-rename 's/\.tif//' *.tif

-nドライランに使用します。

関連情報