現在のディレクトリにある特定の拡張子を持つすべてのファイルの名前を別の拡張子に変更するには? [コピー]

現在のディレクトリにある特定の拡張子を持つすべてのファイルの名前を別の拡張子に変更するには? [コピー]

重複の可能性:
複数のファイル名を変更する(拡張子の変更)

現在/作業ディレクトリに5つのファイルがあるとしましょう。

file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps

現在/作業ディレクトリのすべてのファイル名を拡張子に変更する方法はありますか?.xvg新しい拡張機能を提供してください。。 txt(去る.1株当たり純利益別のファイル)?rename、またはを使用してこれmvを実行できますかmmv?私はUbuntu Linuxを使用しています。ありがとうございます!

ベストアンサー1

特定の問題の場合、このコマンドは機能します。提案された名前の変更に満足していることを確認してから、削除して-n続行してください。

rename -n 's/\.xvg$/.txt/' *.xvg

これは、デフォルトでは、現在のディレクトリ内の拡張子を持つすべてのファイルに対して.xvg()で終わるファイルを見つけ、名前の対応する部分を 。$.xvg.txt

詳細と例を以下に示します。


はい、このrenameコマンドはそのタスクを実行します。ディレクトリ内の他のファイルを無視し、.htmlすべてのファイルの名前を拡張子に変更する簡単な例です。.html_bak

私はできます。強く-nコマンドラインオプションを使用することをお勧めします最初(以下の説明を参照)実際のコマンドを実行する前に、変更内容を確認してください。

私は次のように始めました。

$ ls
a.html  a.txt  b.html  htmlfile

アプローチ-nは「テスト実行」を実行することです。何も変更せずに何が変更されるのかを示すためのものです!

$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak

元のファイルはまだ残っています。

$ ls
a.html  a.txt  b.html  htmlfile

今率直になりましょう:

$ rename  's/\.html$/.html_bak/' *

ファイル名が変更されました。

$ ls
a.html_bak  a.txt  b.html_bak  htmlfile

上記の例では、*名前変更操作に考慮するファイルを指定しました。にのみ.html制限できます*.html

詳細については、名前変更のマニュアルページを参照してください。

おすすめ記事