Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

この記事では、Linux環境でファイルや複数ファイルの名前を変更するための、2つの異なる方法を解説します。

mvコマンドとrenameコマンドの使い方、そしてそれぞれのコマンドを使い分ける理由について詳しく見ていきましょう。

mvコマンドでのファイル名変更 – もはや推奨されない方法

まずは具体例から始めます。Webディレクトリ内のファイル拡張子が何らかの理由で壊れてしまった状況を想定しましょう。ここではブログのファイルを使用します。

ping www.linuxscrew.com #まず接続確認
wget -m www.linuxscrew.com #サイトをミラーリング

これでウェブサイトのミラーが手に入りました。次に、わざとこれを「壊して」みましょう。

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

Linuxシェル – ampファイル

大量の?ampファイルができてしまいました。すべて.htmlファイルに変換されてしまったのです。さらに余計なファイルまで混ざっています。そこでpagesディレクトリに移動し、「すべて.htmlに変えてしまった」というミスを修正することにします。

インターネットで調べると、「mv *[拡張子1] *[拡張子2]」というシンプルなコマンドで目的が達成できると書かれていることがあります。実際に試してみましょう。

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

mvエラー

なんと、エラーが出てしまいました。どうしてmvコマンドが期待通りに動作しないのでしょうか?ローカルデスクトップ(Pop!_OS)でも試してみます。空の.htmlファイルが2つあるので、これらを.pdfに変更してみます。

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

mvエラー

同じエラーです。つまり、時代とともにやり方は変わり、かつての常識的な手法が廃止されていくということです。ifconfigが非推奨になり、多くのユーザーがip a(アドレス表示)やip r(ルート表示)へ移行しているのと同じことです。特定のツールを本来の用途以外で使うと、後々プロセスが壊れる原因になります。この話題については別の記事で詳しく触れたいと思います。

代わりに、目的に合った専用ツールを使うべきです。このケースでは、mvではなくrenameを使用します。どうしてもmvでファイル名を変更したい場合は、単一ファイルに対してのみ、控えめに使うことをおすすめします。

renameコマンドで複数ファイルを一括リネーム

すでに紹介したように、2つのツールを組み合わせれば強力な一括リネーム処理を実現できます。

find . -depth -type f -name "*?amp" -execdir rename ?amp .html {} \;

各オプションの意味を見ていきましょう。

  • -depth:ディレクトリを走査する際に子要素が壊れないよう、深さ優先で処理します。
  • -type f:対象をファイルのみに限定します。このユースケースでは必須ではありませんが、堅牢性を高めるために指定しておきます。
  • -name:検索対象のパターンを指定し、-execdir経由でrenameコマンドに渡します。
  • 置換対象のパターン?amp.htmlに置き換えるよう指定します。
  • 最後の引数には、findコマンドで抽出したすべてのファイルが渡されます。

シンプルですね。次に、より基本的なrename関数の使い方を見てみましょう。ログファイルがいくつかあるので、そのうちの1つをリネームしてみます。

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

ログファイル

単一ファイルのリネーム

単一ファイルの場合は、renameよりもmvを使うのが最も簡単です。

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

mvコマンドによるファイル移動

これでファイル名の変更が完了しました。あえてrenameコマンドを使いたい場合は以下のようにします。

rename '' "`date +%Y-%m-%d`"- cloud-init.log

また、時間を節約するために日付を変数として保存しておくこともできます。

date="`date +%Y-%m-%d`"

mvの代わりにrenameを使っても、それほど手間は増えません。最初の式フィルタを空の結果に置き換えるだけです。

ファイル名への日付追加

Linuxでファイル名を変更する2つの簡単な方法:mvとrenameコマンドの使い分け

ファイル名への日付追加

これでファイル名に日付が追加されました。シンプルで便利なテクニックです。

まとめ

Linuxでのファイル名変更は、適切なツールを選べば非常にシンプルな作業です。単一ファイルならmv、複数ファイルの一括変更ならrenameという使い分けを覚えておきましょう。ディレクトリ名の変更方法や、その他の日々のタスクに関する記事もぜひチェックしてみてください。

  1. Excelで掛け算(乗算)をする8つの簡単な方法【初心者向け完全ガイド】

    Excelでの数値の掛け算はとても簡単ですが、複数のセルや列、行を掛け合わせるとなると、意外と戸惑うことも多いものです。さまざまな乗算の方法を知っておくと、計算時間を大幅に節約できます。このチュートリアルでは、Excelでセル・列・行・数値を掛け合わせる複数の方法をわかりやすく解説します。 Excelで乗算する8つの簡単な方法 以下では、Excelで素早く簡単に掛け算ができる8つの方法をご紹介します。 ここでは、「商品名」「単価」「数量」のデータセットを例にします。この情報をもとに、合計金額を計算しながら乗算の方法を学んでいきましょう。 1. アスタリスク記号(*)でセル同士を掛ける 数値が

  2. Macで複数の画像ファイル名を一括変更!おすすめバッチリネームソフト「Tweak Photos」

    数百ものファイル名を手作業で変更するのは、想像以上に面倒な作業です。もちろん、Macでカスタムスクリプトを作成して効率化することもできますが、これは一般ユーザーにはハードルが高すぎます。そこで役立つのが、複数のファイル名を一度に変更できるバッチ写真リネームソフトです。本記事では、Systweak Software社の「Tweak Photos」を紹介します。このソフトは高度なリネーム機能を豊富に搭載しており、迅速かつ手軽に作業を完了できます。 Macでバッチ画像リネームアプリを使って複数のファイル名を変更する方法 Tweak Photosは専用の写真管理ソフトウェアで、わずか数回のクリックで数