Linuxでフォルダ名を変更する方法:ターミナルからの完全ガイド

最終更新: 30 12月2025
  • mv コマンドをマスターすると、ローカルでもリモート サーバーでも、Linux 内のフォルダーやファイルの名前を変更したり移動したりすることが迅速かつ安全になります。
  • cp コマンドと rm コマンドは mv を補完し、-r、-i、-fy、-v などのオプションを利用してディレクトリ全体をコピー、削除、および並べ替えます。
  • 名前変更ツールとシェル ループを使用すると、パターンと正規表現を使用してファイルの名前を一括変更することが簡単になります。
  • 正しいパスを使用し、ls で確認し、ワイルドカードと破壊的なオプションに注意することが、データ損失を回避するための鍵となります。

Linuxでフォルダ名を変更する

サーバーを扱ったり、Linuxでプロジェクトを開発したりする場合、遅かれ早かれターミナルからフォルダやファイルの名前を変更する必要が出てきます。一見簡単そうに聞こえますが、特にGNOME、KDEなどのグラフィカル環境に慣れていてファイルマネージャーに慣れている人にとっては、コマンド、パス、オプションの操作は最初は難しく感じるかもしれません。

幸いなことに、Linuxでは、これらの問題はすべて強力なコマンドをいくつか使うだけで解決できます。`mv` 、`cp`、`rm`、そして`rename`ツールの仕組みを理解すれば、ローカルマシン上だけでなく、SSH経由で接続したリモートサーバー上でも、ディレクトリの名前変更、移動、コピー、管理を完全に制御できるようになります。

基本概念: Linux のディレクトリ、パス、ターミナル

何かを操作する前に、Linuxにおけるフォルダとは何かを正確に理解することが重要です。内部的には、ディレクトリは、その中に含まれるファイルとサブディレクトリの名前のインデックスを格納する特殊なファイルです。つまり、フォルダの名前を変更しても、その内容をコピーしたり変更したりするのではなく、インデックス名だけを変更しているのです。

Linuxでは、ファイルシステムの構造は階層型なので、パスは絶対パスと相対パスの両方になります。絶対パスは常に / で始まります(例:/home/user/project)。一方、相対パスは現在のディレクトリに基づいて解釈されます(例:/home/user にいる場合はproject/img となります)。

この構造をナビゲートするには、ターミナルを使用します。`cd`はディレクトリを移動し、` pwd` は正確なパスを表示し、`ls` は内容を一覧表示します。これらの 3 つのコマンドは、後述する名前変更の例でパス エラーを防ぐために不可欠です。

サーバー上で作業する場合、特にWeb開発では、SSH経由で接続するのが一般的です。`ssh user@server`のように接続します。接続が確立されると、`mv`、`cp`、`rm`、`rename`などのコマンドはローカルマシンで行うのと全く同じように動作しますが、今度はリモートサーバー上のファイルに影響を与えることになります。

mvコマンド:Linuxでのディレクトリの移動と名前変更

Linuxでフォルダ名を変更する際の主要なツールは、 `mv`コマンド(「move」の略)です。主な機能はファイルやディレクトリを移動することですが、物理的に移動せずに名前を変更するのにも最適です。

mvコマンドの一般的な構文は非常にシンプルです。mv SOURCE DESTINATION と記述します。SOURCEパラメータは既に存在するファイルまたはフォルダを指定し、DESTINATIONは移動または名前変更先の新しい名前またはパス(ファイル名を含む)を指定します。

利用可能なオプションをすべて確認したい場合は、ターミナルで`mv --help` を実行してください。`mv ... ` のような表示とともに、動作をニーズに合わせて調整できるパラメータとフラグの一覧が表示されます。

ディレクトリやファイル操作時に最もよく使用される`mv`オプションは、`-f`、`-i`、`-u`、`-v`です。これらは必須ではありませんが、特に重要なファイルを誤って上書きしてしまうリスクがある場合に、より高度な制御とセキュリティを提供します。

mvコマンドのより便利なオプション

コンソールからファイルやフォルダの名前を変更したり移動したりする際に、最も恐ろしいのは、誤って既存のファイルを上書きしてしまうことです。そのため、頻繁に使用することになるいくつかの`mv`フラグを覚えておく必要があります。

-i (対話型)オプションを使用すると、mvコマンドは既存の宛先を上書きする前に確認を求めます。たとえば、移動先のディレクトリ名が移動先のディレクトリ名と同じ場合、mvコマンドは確認を求め、y/nと入力して続行するかキャンセルするかを選択できます。

-f (force)フラグは正反対の動作をします。何も確認せずに、無差別に上書きします。自動化スクリプトや、対象が上書き可能であることが確実な場合には便利ですが、まだ学習中の場合は安易に使用するのは避けた方が良いでしょう。

-uオプションは、ソースファイルが宛先ファイルよりも新しい場合、または宛先ファイルがまだ存在しない場合にのみ、ファイルの移動または名前変更を実行します。これは、ディレクトリを同期していて、不要な置換を避けたい場合に便利です。

最後に、-v(詳細表示)オプションを指定すると、mvコマンドは各ステップで実行している内容を表示します。つまり、「'img' -> 'images' に名前変更」のような行が表示され、多数のファイルに対する操作を追跡するのに非常に便利です。

Linuxでmvを使ってフォルダ名を変更する方法

ディレクトリを移動せずに名前を変更するには、現在の名前と新しい名前を指定するだけで済みます。基本的な方法は、`mv old_folder new_folder`というコマンドを実行することです。この操作は、常にそのフォルダの親ディレクトリで行います。

プロジェクト内にimgという名前のフォルダがあり、それをimagesに名前変更したいとします。既にプロジェクトディレクトリにいる場合は、mv img imagesコマンドを実行するだけで、すぐに古い名前のフォルダを削除できます。

  データセンターとバッテリー:BESSがゲームチェンジャーとなる方法

より分かりやすい例として、まず`ls -l`コマンドでディレクトリの内容を表示し、 `img`ディレクトリを確認してから、 `mv -v img images`コマンドを実行し、再度`ls -l`コマンドで`images`だけが表示されることを確認してください。` -v`オプションを付けると、名前変更メッセージが表示されるので、混乱を避けることができます。

ここで、最初に混乱を招くことが多い重要な点があります。ディレクトリ名を変更する際に、末尾に「/」を付けないことです。つまり、mv img imagesと入力し、mv img/ images/ とは入力しません。この文脈では末尾のスラッシュは不要であり、他のパスと混在させるとエラーの原因となる可能性があるためです。

フォルダの名前変更と移動を同時に行う

`mv`コマンドの利点の1つは、ディレクトリを別の場所に移動させると同時に名前を変更できることです。これは、大規模なプロジェクトを再編成したり、サーバーの構造を整理したりする際に非常に便利です。

現在のディレクトリにOldProjectというフォルダがあり、それを/home/user/Workspaceに移動してNewProject という名前に変更したいとします。コマンドは次のようになります: mv OldProject /home/user/Workspace/NewProject。

名前を変えずに階層を一つ上の階層に移動したい場合は、相対パスを使用できます。たとえば、imgフォルダの名前を変更せずに親ディレクトリに移動するには、 `mv img ../img`と入力します。この場合、`..`は「一つ上のディレクトリ」を意味します。

別のフォルダに移動して、ついでに名前を変更することもできます。プロジェクトに「files」フォルダがあり、「files」内の「img 」の名前を変更したい場合は、` mv img files/images`を使用します。これを実行すると、最終的なパスは`./ files/images`のようになります。

ディレクトリを別の場所に移動する場合、ソースと宛先のファイルシステムが同じであれば、`mv` は非常に迅速に参照を変更します。しかし、ファイルシステムが異なる場合は、すべてのコンテンツをコピーしてから元のファイルを削除する操作と同じになり、フォルダが大きい場合はかなりの時間がかかることがあります。

SSHを使用してリモートサーバー上のディレクトリとファイルの名前を変更する

ウェブ開発や本番環境では、SSH経由でアクセスするLinuxサーバー上で作業することが非常に一般的です。その場合、ターミナルで実行されるすべてのコマンドはサーバーのファイルに影響を与えるため、リモートでフォルダの名前を変更することは、ローカルで変更することと同じです。

サーバーに接続するには、通常、 `ssh your-user@your-server`のようなコマンドを使用します。認証が完了すると、リモートプロンプトが表示され、`cd`コマンドでディレクトリを移動したり、 `ls`コマンドでディレクトリの一覧を表示したり、 `mv old_folder new_folder` コマンドでディレクトリ名を変更したりといった操作を、まったく同じように行うことができます。

ローカルマシンとの唯一の実質的な違いは、本番環境ではより注意が必要になるということです。なぜなら、本番環境で名前変更を誤ると、アプリケーション、スクリプト、シンボリックリンク、または内部システム構成で使用されているパスが破損する可能性があるからです。

リスクを最小限に抑えるため、各操作の前後で`mv`と`ls`を組み合わせることをお勧めします。また、上書きの可能性がある場合は`mv -i`を使用して確認を求めるようにしてください。絶対パスを使用することで、現在のディレクトリとの混同を避けることもできます。

スクリプト、サービス、またはWebアプリケーションで使用されるフォルダやファイルの名前を変更する場合は、古い名前のパスがハードコードされていないことを確認してください。ハードコードされている場合は、404エラー、リソースの読み込み失敗、またはサービスが起動しないといった問題を回避するために、新しい名前を指すように更新してください。

Linuxでディレクトリ名を変更する前にcpでディレクトリをコピーする

`mv`コマンドを使えば直接ファイル名を変更できますが、元のファイルを変更する前にコピーを作成して作業する方が安全な場合も多くあります。そこで役立つのが、ファイルやディレクトリをコピーする`cp`コマンドです。

cpコマンドの基本的な構文は、cp SOURCE DESTINATIONと要約できます。SOURCEがファイルの場合は特に複雑ではありませんが、フォルダ全体をコピーする場合は重要な注意点があります。コピーを再帰的に行い、フォルダ内のすべてのコンテンツを含めるには、 -rまたは-Rオプションを使用する必要があります。

例えば、フォントフォルダを同じ場所に別の名前で複製する必要がある場合は、`cp -r fonts/fonts2`のように実行できます。`fonts` の後にスラッシュを付けることで、それがディレクトリであることを明確にすることができます。`cp` は通常、ディレクトリであると想定していますが、いずれにしても、多くのガイドでは誤解を避けるためにこの形式を推奨しています。

同じフォルダをあるディレクトリから別のディレクトリにコピーする場合は、必要に応じて相対パスまたは絶対パスを使用します。典型的な例としては、`cp -r fonts/ ../fonts2`があります。これは、`fonts` フォルダを親ディレクトリに `fonts2` という名前でコピーし、元のフォルダはそのまま残します。

cpコマンドのオプションの中で最も一般的なのは、-i(上書き前に確認を求める)、-v(進行状況を表示する音声モード)、そしてもちろん、ディレクトリの再帰を指定する-r/-Rです。その他のオプションについては、`man cp`または`cp --help`で確認できます。

Linuxでmvを使ってファイル名を変更する

ディレクトリに関して見てきたことはすべて、個々のファイルにも同様に適用されます。mv コマンドはファイルの移動と名前変更の両方に機能し、構文はほぼ同じですが、ファイルレベルでの操作となります。

  Windows 11: メリットと機能

ファイルfile1.txtを含むディレクトリにいて、そのファイル名をfile2.txtに変更したい場合は、単に`mv file1.txt file2.txt` を実行するだけです。ファイルの内容はそのままで、ファイル名だけが変更されます。

正しいディレクトリにいない場合は、まず`cd`を使用して移動するか、コマンドで完全なパスを指定してください。たとえば、`cd /home/user/docs/files`と入力してから`mv archivo1.txt archivo2.txt` と入力するか、直接`mv /home/user/docs/files/archivo1.txt /home/user/docs/files/ archivo2.txt` と入力できます。

分かりやすく説明すると、mvコマンドでファイルの名前を変更することは、概念的には「新しい名前でコピーして元のファイルを削除する」ことと同じですが、ファイルシステム内部では、データの重複なしに、はるかに効率的に処理されます。

フォルダの場合と同様に、ファイルを異なるファイルシステム間で移動する場合、mvコマンドは内部的にコピーを作成してから元のファイルを削除します。同じシステム内に留まる場合は、内部参照のみが変更され、操作は瞬時に完了します。

ループと検索を使用して複数のファイルの名前を一度に変更する

mvコマンド単体には、多数のファイルを一括で名前変更するための専用オプションはありませんが、Linuxシェルとの連携が非常に優れているため、forループ、whileループ、またはfindコマンドと組み合わせて一括名前変更を実行できます。

典型的な例として、一連のファイルの拡張子を変更することが挙げられます。現在のディレクトリにあるすべての .txt ファイルを .pdf に変更したい場合は、次のような for ループを使用できます。for f in *.txt; do mv — "${f}" "${f%.txt}.pdf"; done . このループは、.txt で終わる各ファイルを反復処理し、.txt の部分を切り取り、.pdf に置き換えます。

このタイプのループは非常に柔軟性が高く、シェル構文で表現できるほぼすべての名前変換を実行できます。ただし、パラメータ展開にまだ慣れていない場合は、問題を避けるために、まずテストディレクトリでテストすることをお勧めします。

`find`コマンドを使用して、特定の条件(名前、種類、日付など)を満たすファイルを検索し、`-exec`アクションまたは`while`ループ内でそれらのファイルに対して`mv`コマンドを適用して結果を読み取ることもできます。これは、大規模なディレクトリ構造における複雑な名前変更に非常に役立ちます。

もしこれが少し難しく聞こえるとしても、心配しないでください。時間が経つにつれて、mvコマンドとループを組み合わせることで、多くの作業を省き、わずか数行のシェルスクリプトで反復作業を自動化できることが分かるでしょう。

名前変更コマンド: 高度な一括名前変更

mvに加えて、多くのディストリビューションには、Perlの正規表現を使用して複数のファイルを一括で強力にリネームするために特別に設計されたrenameというツールがあります。

このコマンドは必ずしもプリインストールされているわけではありませんが、追加するのは簡単です。Debian、Ubuntu、Linux Mint、およびその派生ディストリビューションでは、`sudo apt install rename`を使用できます。CentOS または RHEL では、通常は`sudo yum install rename` を使用します。Arch Linux では、AUR の`perl-rename`などのパッケージが一般的に使用されます (たとえば、`yay` または `yaourt` と一緒に)。

`rename` の一般的な構文は次のようになります。`rename 's/old_pattern/new_pattern/' files`。引用符で囲まれた部分は、置換のための Perl 正規表現です。ここで「s/this/for_this/」は、検索したいパターンと、それを置き換える内容を示します。

例えば、ディレクトリ内にfile1.txt、file2.txt、file3.txt、file4.txt、file5.txtというファイルを作成した場合( mkdir filetorename; cd filetorename; touch file{1..5}.txtで簡単に作成できます)、 rename 's/file1/newfile1/' file1.txtで file1.txt だけを newfile1.txt に名前変更できます。

すべての .txt ファイルの拡張子を .php に変更する必要がある場合は、`rename 's/.txt/.php/' *.txt`を実行するだけで済みます。コマンドを実行した後、`ls`コマンドで変更内容を確認し、すべてのファイル名が期待どおりに変換されていることを確認できます。

名前変更の実例:大文字、小文字、スペース

`rename` の利点の 1 つは、Perl の正規表現のおかげで、単純なループと `mv` では非常に面倒な、非常に具体的な変換が可能であることです。覚えておくと良い典型的な使用例がいくつかあります。

ディレクトリ内のすべてのファイル名を大文字に変換したい場合は、 `rename 'y/az/AZ/' *`のようなコマンドを実行できます。この構文では、各小文字を対応する大文字に置き換える変換操作「y」を使用します。

その逆、つまりすべての名前を小文字に変換するには、 `rename 'y/AZ/az/' *` というコマンドを使用します。これは、大文字と小文字が混在して扱いにくくなっているシステムに遭遇した場合に非常に役立ちます。

もう一つよくある問題は、ファイル名にスペースが含まれていることです。これはターミナルで作業する際に非常に煩わしい場合があります。`rename 'y/ /_/' *`のようにしてスペースをアンダースコアに置き換えることで、バックスラッシュや引用符でスペースをエスケープする必要がなくなります。

変更するファイルが別のディレクトリにある場合は、`rename` にパスを直接渡すこともできます。例えば、`rename 's/.txt/.php/' PATH/TO/FILES` のように指定します。こうすれば、コマンドを実行する前にディレクトリを変更する必要がありません。

お使いのバージョンの `rename` でサポートされているすべてのオプションを確認するには、` rename --help`を実行するか、man ページを参照することをお勧めします。`rename` にはディストリビューション固有のバリエーションがあるため、システムで使用可能な正確な構文を常に確認することをお勧めします。

  サーバー監視:信頼性の高い環境を実現するためのベストプラクティス

名前変更ツールが不要になったら削除します

もし、システムにrenameをインストールしたくないと判断した場合(例えば、本番サーバーでは利用できるツールを制限したい場合など)、インストール時に使用したパッケージマネージャーを使って簡単にアンインストールできます。

UbuntuやLinux MintのようなDebianベースのディストリビューションでは、 `sudo apt remove rename`を実行できます。これによりパッケージが削除され、ターミナルからアクセスできなくなりますが、後で必要になった場合はいつでも再インストールできます。

CentOS、RHEL、およびその派生ディストリビューションでは、パッケージを削除するための同等のコマンドは通常`sudo yum remove rename`であり、これにより一括名前変更ユーティリティがシステムから削除されます。

いずれにせよ、renameがインストールされていなくても、 mvコマンドを使ってディレクトリやファイルの名前を変更することは常に可能ですし、必要に応じて独自のシェルスクリプトを作成して、より複雑なタスクを自動化することもできます。

重要なのは、自分のワークフローと作業環境に最適なツールを選択することです。個人のマシンであればすべてをインストールするのが理にかなっているかもしれませんが、非常に重要なサーバーでは、追加コマンドを「最小限に抑える」方が良いかもしれません。

rmでファイルとディレクトリを削除する:削除するときは注意してください

ファイル整理作業においては、不要になったファイルを削除する必要が生じるのが一般的です。Linuxでは、この役割を担うコマンドは`rm`で、個々のファイルだけでなくディレクトリ全体も削除できます。

rmコマンドの一般的な構文は、 rm FILE…と記述できます。古いログファイルなど、単一のファイルを削除したい場合は、必要な権限があれば、 rm file.logのように簡単に記述できます。

ディレクトリを操作するには、再帰的な削除を可能にする-rまたは-Rオプションを使用する必要があります。たとえば、`rm -r folder` はフォルダとそのすべての内容(サブディレクトリやファイルを含む)を削除しようとしますが、追加のフラグを指定しない限り、各項目について確認を求めることなく実行されます。

さらに一歩進んで、制限付きファイルや読み取り専用ファイルであっても強制的に削除したい場合は、再帰と「強制」を組み合わせた`rm -rf folder`というコマンドがあります。これは非常に強力ですが、非常に危険でもあります。このコマンドで注意力が散漫になると、コンピュータの半分が消去されてしまう可能性があります。

したがって、より慎重な操作を好む環境では、-r オプションと-i オプションを組み合わせて使用​​することをお勧めします。そうすることで、rm コマンドは各ファイルまたはディレクトリを削除するかどうかを確認するメッセージを表示します。例えば、 rm -ri folderのように実行すれば、各ステップで確認を求められるため、誤って削除すべきでないファイルを削除してしまうリスクを軽減できます。

rmから空のディレクトリやその他の詳細を削除します

`rm`コマンドに加えて、空のディレクトリを削除することだけを目的とした`rmdir`という専用コマンドがあります。ディレクトリに何らかのファイルやデータが含まれている場合、`rmdir`は失敗し、ディレクトリが空ではないため削除できないという警告が表示されます。

そのため、rmdirは、例えばフォルダの内容を別の場所に移動した後など、ファイルが既に存在しないことがわかっているフォルダをクリーンアップしたい場合に、より安全な選択肢となります。すべてのオプションを確認するには、ターミナルで`man rmdir`を実行してください。

rm に戻ると、 -i、-f、-r/-R、 -v (削除対象を一覧表示する)に加えて、 * や ? のようなワイルドカードを使用してファイルのグループを選択できることを覚えておいてください。典型的な例は、 rm *.txtのようにしてディレクトリからすべての .txt ファイルを削除することです。

複数のファイルを一度に削除することも可能です。例えば、`rm file1.log file2.log file3.log`のように明示的に指定します。これにより、削除したいファイルが正確にわかっている場合に、`rm` コマンドを何度も入力する手間が省けます。

いずれにしても、ワイルドカードや -r オプションを使用して rm コマンドを実行する場合は、Enter キーを押す前にコマンドを確認し、可能であれば事前にls コマンドを実行して、使用したパターンに一致するファイルを確認することをお勧めします。

rm、mv、cp、そして必要に応じてrenameコマンドを使いこなせるようになれば、Linuxデスクトップ上でもリモートサーバー上でも、グラフィカル環境に依存することなく、フォルダやファイルの名前変更、移動、コピー、削除をスムーズに行えるようになり、常に自分が何をしているのかを正確に把握できるという安心感を得られます。

NAS上のROMコレクションを整理する
関連記事:
NASでROMコレクションを整理する方法