Linux で複数のファイルの名前を一括で変更する方法

Linux で複数のファイルの名前を一括で変更する方法

Linux では、通常、ファイルの名前を変更するために mv コマンドを使用します。これは、単一のファイルの名前を変更する場合に非常に便利です。ただし、ファイルのグループの名前を変更したい場合、mv は少し無力です。しかし、それは問題ではありません。今日は、バッチ名前変更を実現できる便利なコマンド、rename コマンドを紹介します。

renameコマンドの使い方を詳しく紹介します。

mv コマンドとは異なり、rename コマンドは単に古いファイル名と新しいファイル名を指定するだけではありません。代わりに、Perl に似た正規表現を使用します。まずは例を見てみましょう。

$ 's/old/new/' を this.old に名前変更
$ これ*
これ.new

このうち、 s は使用第二個字符串替換第一個字符串、それによって this.old を this.new に変更することを指定するために使用されています。

上記の例では、コマンドmv this.old this.newを使用する方が便利ではないかと疑問に思う人もいるかもしれません。そうですが、このようなコマンドでは一度に 1 つのファイルの名前しか変更できません。今日やろうとしているのは、ファイルのグループの名前を一度に変更することです。

どう対処すればいいのでしょうか?とても簡単です。次の例を見てみましょう。

$ ls *.old
report.old スケジュール.old 統計.old this.old
$ 's/old/new/' *.old の名前を変更します
$ ls *.new
report.new スケジュール.new 統計.old this.new

上記の結果から、この簡単なコマンド操作により、現在のディレクトリにある .old で終わるすべてのファイルの名前を .new で終わるファイルに変更できることがわかります。シンプルで効率的です。

名前変更コマンドがこれだけだと考えているなら、コードは壊れています。名前変更コマンドはファイル拡張子の変更に限定されず、ファイル名内の任意の文字列を変更することもできます。たとえば、report.* という名前のファイルを review.* に変更する場合は、次のコマンドを使用できます。

$ 's/report/review/' の名前を変更 *

正規表現で提供されるルールにより、ファイル名や拡張子など、ファイル名の任意の部分が変更される可能性があることに注意してください。

$ 's/123/124/' の名前を変更する *
$ 124 *
ステータス.124 レポート124.txt

間違いを避けるために、対話的に rename を使用してどのような変更が行われたかを確認する場合は、-v オプションを使用できます。

$ 名前変更 -v 's/123/124/' *
status.123 が status.124 に名前変更されました
report123.txt が report124.txt に名前変更されました

-v オプションは、行を変更したときにテキストをプレビューし、別の行を変更したときに再度プレビューしますが、これは非効率的です。全体をプレビューして問題がないことを確認した上で、一気に修正したい場合はどうすればよいでしょうか?

-n または --nono オプションを使用すると、名前変更コマンドで上記の要件を満たすことができます。

$ 名前変更 -n 's/old/save/' *
名前を変更します(logger.man-old、logger.man-save)
名前を変更(lyrics.txt-old、lyrics.txt-save)
名前変更(古いファイル、保存ファイル)
名前変更(古いファイル、保存ファイル)
名前を変更(review.old、review.save)
名前を変更する(schedule.old、schedule.save)
名前を変更する(stats.old、stats.save)
名前を変更する(this.old, this.save)

上記の変更に問題がない場合は、-n オプションを削除してファイル名を正式に変更できます。

名前変更の正規表現の . は通常のピリオドではなく、任意の文字に一致するワイルドカードであることに注意してください。これを理解するには、次のコマンドを参照してください。

$ 名前を変更 -n 's/.old/.save/' *
名前を変更します(logger.man-old、logger.man.save)
名前を変更(lyrics.txt-old、lyrics.txt.save)
名前を変更(review.old、review.save)
名前を変更する(schedule.old、schedule.save)
名前を変更する(stats.old、stats.save)
名前を変更する(this.old, this.save)

上記の例では、.old が .save に変更されるだけでなく、-old も .save に変更されます。

. でピリオドを表す場合は、\ エスケープ記号を追加する必要があります。つまり、英語のピリオドを表すには \. を使用します。

$ 名前を変更 -n 's/\.old/\.save/' *
名前を変更(review.old、review.save)
名前を変更する(schedule.old、schedule.save)
名前を変更する(stats.old、stats.save)
名前を変更する(this.old, this.save)

すべての大文字を小文字に変更するには、次のコマンドを使用します。

$ 名前変更 -n 'y/AZ/az/' W*
名前を変更(WARNING_SIGN.pdf、warning_sign.pdf)
名前を変更(Will_Gardner_buttons.pdf、will_gardner_buttons.pdf)
名前を変更(Wingding_Invites.pdf、wingding_invites.pdf)
名前を変更(WOW-buttons.pdf、wow-buttons.pdf)

変更内容をプレビューするには -n を使用し、大文字と小文字を変更するには y を使用します。

上記の例では、大文字の W で始まるすべてのファイル名を小文字に変更しました。

要約する

単一のファイルの名前を変更する場合は、mv コマンドを使用できます。複数のファイルの名前を変更する場合は、rename コマンドを使用する方が便利です。事故を避けるために、rename コマンドを使用するときは、最初に -n オプションを追加して変更内容をプレビューし、正しいことを確認してから名前を変更するのが最善です。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で複数のファイルの名前を一度に変更する方法

<<:  Vueは単一ファイルコンポーネントの完全なプロセス記録を実装します

>>:  単語のグループ化シーケンスと複数フィールドのグループ化のための MySQL グループ方法

推薦する

MySQL のデータの偶発的な削除の解決策と kill ステートメントの原則

mysql が誤ってデータを削除しました削除ステートメントを使用して誤ってデータ行を削除する誤ってデ...

Windows Server win2003、win2008R2、win2012、win2016、win2019 システム バージョン間の違い

最近、Microsoft は 2019 サーバー システムをリリースしました。一般的に、Micros...

uniappを使用してWeChatミニプログラムでEChartsを使用する方法

今日は、uniapp を使用して Echarts を統合し、マップ チャートを表示します。 mpvu...

JavaScriptの基本構文とデータ型の詳細な説明

目次JavaScript のインポート1. 内部ラベル2. 外部紹介基本的な構文データ型番号弦ブール...

MySQL の union と union all の簡単な分析

データベースでは、UNION キーワードと UNION ALL キーワードの両方が 2 つの結果セッ...

Vueフロントエンドの効率的な開発のためのレンダリング手順をリストします

v-for ディレクティブリストといえば、ループについても触れなければなりません。v-for 命令は...

Kubernetesでポッドを作成する方法

目次ポッドを作成するには? kubectl ツールポッドを作成するには?前回の記事では、コンテナとポ...

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

Vueはカルーセルアニメーションを実装します

この記事では、カルーセルアニメーションを実現するためのVueの具体的なコードを例として紹介します。具...

CSS設定div背景画像実装コード

コンポーネントに背景画像コントロールを追加するには、次の 2 つの手順だけが必要です。 <表示...

プレーヤー機能を実現するためのvue + element uiのサンプルコード

効果画像のない表示は単なる空虚な言葉です。 1. オーディオをベースにし、elementUI と組み...

開発効率の向上に役立つ 56 個の実用的な JavaScript ツール関数

目次1. デジタルオペレーション(1)指定された範囲内で乱数を生成する2. 配列操作(1)配列の順序...

MySQLに必要な共通知識のまとめ

目次主キー制約一意の主キー非 Null 制約デフォルトの制約外部キー制約1NF 2NF 3NFデータ...

HTML ページ内の js および css ファイルのキャッシュを自動的にクリーンアップします (バージョン番号を自動的に追加します)

Web プロジェクトの開発プロセスでは、CSS ファイルや JS ファイルを参照することがよくあり...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...