重複の可能性あり:
複数のファイルの名前を変更する(拡張子を変更する)
現在の作業ディレクトリに次の 5 つのファイルがあるとします。
file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps
現在のディレクトリ/作業ディレクトリにあるすべてのファイルの拡張子を.xvgそして新しい拡張機能を付与する。TXT(残して.epsファイルのみで実行できますか? これは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
。
詳細については、名前変更のマニュアルページを参照してください。
答え2
これは次のように実行できます。
rename 's/xvg$/txt/' *.xvg
glob パターンにより、*.xvg
影響を受けるのはファイルのみになります。