拡張子を削除して複数のファイルの名前を変更するには?

拡張子を削除して複数のファイルの名前を変更するには?

次のような名前のtiffファイルがたくさんあります。

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

.tif各ファイルの終わりにあります。このコマンドを使用してこれを行うにはどうすればよいですかrename

答え1

perlrename一般的にはDebianで見つかるとも呼ばれます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試運転用。

関連情報