1. ホーム
  2. bash

[解決済み] 大量のファイルの拡張子を変更するにはどうすればよいですか?

2022-03-18 23:40:24

質問

あるディレクトリに、たくさんの *.html ファイルです。これらのファイルの名前をすべて *.txt

どうすればいいのでしょうか?私はbashシェルを使っています。

どのように解決するのですか?

より良い解決策(外部呼び出しではなく、bashの機能のみを使用したもの)については、以下を参照してください。 他の答えの一つ .


以下のようにすると、システムに rename というプログラムがあります(もっとも、システム上にこれがあることが多いのですが)。

for file in *.html; do
    mv "$file" "$(basename "$file" .html).txt"
done

EDITです。 コメントで指摘されたように、スペースが含まれるファイル名の場合、適切な引用をしないと動作しません(現在は上に追記しています)。純粋に自分自身のファイルについて、ファイル名にスペースが含まれていないことが分かっている場合には、この方法は有効ですが、後で再利用される可能性があるものを書く場合には、適切なクォートを省略しないようにしてください。