![現在のディレクトリにある特定の拡張子を持つすべてのファイルの名前を別の拡張子に変更するにはどうすればよいですか?](https://rvso.com/image/23550/%E7%8F%BE%E5%9C%A8%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E3%81%82%E3%82%8B%E7%89%B9%E5%AE%9A%E3%81%AE%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%82%92%E6%8C%81%E3%81%A4%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E5%90%8D%E5%89%8D%E3%82%92%E5%88%A5%E3%81%AE%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%81%AB%E5%A4%89%E6%9B%B4%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F%20.png)
重複の可能性あり:
複数のファイルの名前を変更する(拡張子を変更する)
現在の作業ディレクトリに次の 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
影響を受けるのはファイルのみになります。