Linuxでファイル名を変更したいのに、GUIの「右クリック→名前の変更」が見当たらない——コマンドライン操作を始めたばかりの方がよくぶつかる壁のひとつです。
Linuxではファイル名の変更にmvコマンドを使います。移動コマンドとして知られていますが、同じディレクトリ内で新しい名前を指定するだけでリネームが完了します。この記事では、mvコマンドの基本構文から具体的な使用例・注意点・一括変更の方法まで、初心者にもわかりやすく解説します。
Linuxでファイル名変更する基本方法

Linuxでファイル名を変更する主なコマンド
| コマンド | 用途 | 対応ファイル数 |
|---|---|---|
mv |
単体のファイル・ディレクトリ名変更 | 1件ずつ |
rename |
パターンによる一括リネーム | 複数件まとめて |
単体のファイル名変更にはmvコマンドを使う
Linuxでファイル名を変更する最も基本的な方法はmvコマンドです。mvは本来「ファイルを移動する」コマンドですが、移動先として同じディレクトリに別の名前を指定することでリネームとして機能します。 追加パッケージのインストールは不要で、すべてのLinuxディストリビューションで標準利用できます。
複数ファイルの一括変更にはrenameコマンドを使う
renameコマンドは、正規表現や文字列パターンを使って複数のファイル名を一括変更する際に使います。たとえば「拡張子を.txtから.mdにまとめて変換する」といった作業に向いています。ディストリビューションによってはデフォルトで入っていない場合があります。
Windowsの名前変更操作との違い
Windowsではエクスプローラー上でファイルを右クリックし「名前の変更」を選択するか、F2キーを押してGUIで変更できます。Linuxのコマンドラインにはこの直感的なGUI操作はなく、コマンドで変更前・変更後の名前をテキストで指定する必要があります。 慣れれば素早く操作できますが、入力ミスが事故につながるため確認の習慣が重要です。
mvコマンドとは何か

mvコマンドの基本的な役割
mvはmoveの略で、ファイルやディレクトリを別の場所に移動するコマンドです。Linuxのファイルシステム上では、「名前の変更」と「場所の移動」は内部的に同じ操作として扱われます。これがmvコマンドでリネームができる理由です。
ファイルやディレクトリの移動に使われるコマンド
Linuxのファイルシステムでは、ファイルの「名前」はファイルそのものではなく、ファイルシステム上のinodeへのリンクです。mvコマンドはこのリンクの名前を変更することでファイルの移動やリネームを実現しています。
移動先に新しい名前を指定するとリネームできる仕組み
移動先のパスとして「同じディレクトリ内の別ファイル名」を指定すると、ファイルの実体は動かずに名前だけが変わります。これがリネームの仕組みです。ファイルの内容・パーミッション・タイムスタンプはそのまま保持されます。
mvコマンドでできること
- ファイル名の変更(リネーム)
- ディレクトリ名の変更
- ファイルを別ディレクトリへ移動
- 移動しながら同時にファイル名を変更
- 複数ファイルを1つのディレクトリへまとめて移動
Linuxでファイル名変更するmvコマンドの構文

基本構文
mv 変更前のファイル名 変更後のファイル名
mv [オプション] 変更前のファイル名 変更後のファイル名
オプションは省略可能です。最もシンプルな形はオプションなしで変更前・変更後のファイル名を並べるだけです。
同じディレクトリ内でファイル名を変更する方法
同じディレクトリ内で名前だけを変えたい場合は、パスの指定なしでファイル名だけを書きます。
mv 旧ファイル名.txt 新ファイル名.txt
このとき、コマンドを実行しているカレントディレクトリに対象ファイルが存在している必要があります。まずpwdコマンドで現在地を確認してから実行する習慣をつけましょう。
別のディレクトリへ移動しながら名前を変更する方法
移動と同時にリネームを行う場合は、移動先のディレクトリパスとともに新しいファイル名を指定します。
mv /home/user/documents/old.txt /home/user/backup/new.txt
このコマンドでold.txtは/home/user/backup/へ移動しつつnew.txtという名前に変わります。
拡張子を含めてファイル名を変更する場合の注意点
Linuxでは拡張子はファイル名の一部にすぎず、システムはファイルの種類を拡張子ではなくファイルの中身(マジックナンバー)で判断します。 しかし、アプリケーションは拡張子を見てファイルを開くかどうか判断することが多いため、拡張子を誤って変更すると意図しない動作になる場合があります。拡張子の変更は意図的である場合のみ行いましょう。
mvコマンドでファイル名を変更する具体例
テキストファイルの名前を変更する例
report_draft.txtをreport_final.txtに変更する場合:
mv report_draft.txt report_final.txt
実行後にlsコマンドで確認します。
ls
report_final.txt
画像ファイルの名前を変更する例
IMG_0012.jpgをprofile_photo.jpgに変更する場合:
mv IMG_0012.jpg profile_photo.jpg
画像ファイルも同じ構文で変更できます。拡張子(.jpg)は変更前後で同じにしておくのが基本です。
拡張子だけを変更する例
readme.txtの拡張子を.mdに変更する場合:
mv readme.txt readme.md
注意: 拡張子を変更してもファイルの中身は変わりません。Markdownとして正しく表示されるかどうかは、ファイルの内容がMarkdown形式で書かれているかどうかによります。
パスを指定して別フォルダ内のファイル名を変更する例
カレントディレクトリにいない状態で/var/www/html/内のindex_old.htmlをindex.htmlに変更する場合:
mv /var/www/html/index_old.html /var/www/html/index.html
絶対パスで指定することで、どのディレクトリにいても正確に操作できます。
Linuxでディレクトリ名を変更する方法
ディレクトリ名変更にもmvコマンドを使う
Linuxではファイルとディレクトリのどちらもmvコマンドで名前変更できます。構文はファイルの場合とまったく同じです。Linuxのファイル・ディレクトリ名変更についてより詳しくはこちらの解説も参考になります。
基本構文
mv 変更前のディレクトリ名 変更後のディレクトリ名
mv 変更前のディレクトリ名 変更後のディレクトリ名
ファイルの場合と同じ構文です。ディレクトリの場合、末尾に/をつけてもつけなくても動作します。
同じ階層でディレクトリ名を変更する例
old_projectというディレクトリをnew_projectに変更する場合:
mv old_project new_project
実行後に確認します。
ls -l
drwxr-xr-x 2 user user 4096 May 16 10:00 new_project
ディレクトリを移動しながら名前を変更する例
/home/user/work/old_projectを/home/user/archive/new_projectに移動しながら名前も変更する場合:
mv /home/user/work/old_project /home/user/archive/new_project
移動先の/home/user/archive/が存在していることを事前に確認しておきましょう。存在しない場合、archiveという名前のディレクトリ(またはファイル)として扱われることがあります。
mvコマンドで既存ファイル名を指定した場合の注意点
同じ名前のファイルがあると上書きされる可能性がある
mvコマンドはデフォルトで確認なしに上書きします。変更後のファイル名と同名のファイルが既に存在する場合、そのファイルは警告なく消去されます。 削除されたファイルはごみ箱に入らず、復元が困難です。
上書き確認が表示されるケース
一部の環境ではmvに-iオプションがエイリアスとして設定されている場合があります。その場合、同名ファイルが存在するときに以下の確認メッセージが表示されます。
mv: 'new_file.txt' を上書きしますか?
ただし、このエイリアス設定はディストリビューションや環境によって異なるため、確認が出ることを前提にした操作は危険です。
誤って重要なファイルを上書きしないための対策
- 必ず
-iオプションを付けて確認プロンプトを表示させる - または
-nオプションで既存ファイルへの上書きを完全に禁止する - 重要なファイルは事前に
cpコマンドでバックアップを取る
変更前にlsコマンドでファイルを確認する
mvコマンドを実行する前に、変更後の名前で既存ファイルがないかを確認します。
# 変更後の名前が既に使われていないか確認
ls -la | grep new_file.txt
何も表示されなければ同名ファイルは存在しないため、安全にリネームできます。
既存ディレクトリを指定した場合の動作
既存ディレクトリ名を指定すると移動になる
ファイルと異なり、ディレクトリ名変更で変更後の名前として既存のディレクトリ名を指定すると、リネームではなく「そのディレクトリの中に移動」する動作になります。
# project_aとproject_bが両方存在する場合
mv project_a project_b
# 結果:project_a は project_b/project_a として移動される
リネームと移動を間違えやすい理由
ファイルの場合は同名ファイルがあると上書き(消去)されますが、ディレクトリの場合は中に移動されます。同じコマンドでも対象がファイルかディレクトリかによって挙動が異なるため、混乱が生じやすい部分です。
ディレクトリ名変更前に確認すべきポイント
- 変更後のディレクトリ名が既に存在しないか
lsで確認する - 対象ディレクトリの親ディレクトリで作業しているか
pwdで確認する - ディレクトリ内に重要ファイルが含まれている場合は特に慎重に操作する
意図しない移動を防ぐための考え方
ディレクトリ名を変更する前に必ず以下を実行します。
# 変更後の名前でディレクトリが存在しないか確認
ls -d new_directory_name 2>/dev/null && echo "既に存在します" || echo "存在しません"
「存在しません」と表示された場合のみ、mvコマンドでのリネームが安全です。
mvコマンドでファイル名変更するときに役立つオプション
mvコマンドのオプション一覧と使い方の詳細についてはこちらの記事も参考になります。
| オプション | 役割 | 使いどころ |
|---|---|---|
-i |
上書き前に確認プロンプトを表示 | 通常作業・初心者向け |
-n |
既存ファイルへの上書きを禁止 | 上書きを絶対防ぎたい場面 |
-v |
実行内容を標準出力に表示 | 操作ログの確認・デバッグ |
上書き前に確認する-iオプション
mv -i old_file.txt new_file.txt
new_file.txtが既に存在する場合、以下のプロンプトが表示されます。
mv: 'new_file.txt' を上書きしますか? (yes/no)
yで上書き、nでキャンセルです。初心者は常に-iを付ける習慣をつけましょう。
上書きを防ぐ-nオプション
mv -n old_file.txt new_file.txt
同名ファイルが既に存在する場合、確認なしに操作がスキップされます。上書きを絶対に防ぎたいスクリプト処理などで有効です。ただし、リネームが実行されたかどうかが画面に表示されないため、-vと組み合わせることを推奨します。
処理内容を表示する-vオプション
mv -v old_file.txt new_file.txt
実行結果が以下のように表示されます。
'old_file.txt' -> 'new_file.txt'
一括処理や複数ファイルの移動時に何が実行されたかを視覚的に確認できます。
安全にファイル名変更するための使い分け
日常作業ではmv -ivの組み合わせが最もバランスよく安全です。上書き確認が出た上で、実行内容もログとして表示されます。
mv -iv old_file.txt new_file.txt
複数ファイルの名前を一括変更したい場合
mvコマンドだけでは一括リネームに向かない
mvコマンドは1対1のリネームを前提としています。複数ファイルを一括変更するには毎回コマンドを書く必要があり、非効率です。たとえば100枚の画像ファイルの拡張子をまとめて変更するような作業には向いていません。
renameコマンドを使うケース
renameコマンドは正規表現やパターンを使って複数ファイルを一括変更できます。ディストリビューションによって2種類の実装があります。
- Debian/Ubuntu系: Perlベースの
rename(prenameとも呼ばれる) - CentOS/RHEL系: util-linuxの
rename(よりシンプルな文字列置換)
インストールされていない場合は以下でインストールできます。
# Debian/Ubuntu系
sudo apt install rename
# CentOS/RHEL系
sudo yum install util-linux
拡張子をまとめて変更する場合の考え方
カレントディレクトリ内の全.txtファイルを.mdに変更する例(Debian/Ubuntu系):
rename 's/\.txt$/.md/' *.txt
CentOS/RHEL系の場合:
rename .txt .md *.txt
renameコマンドの詳しい使い方と正規表現の活用例はこちらの記事で解説されています。
大量ファイルを変更する前にテストする重要性
Debian/Ubuntu系のrenameでは-nオプション(dry-run)でテスト実行できます。
# 実際には変更せず、変更内容だけを表示する
rename -n 's/\.txt$/.md/' *.txt
推奨: 大量ファイルの一括リネームは必ずdry-runで内容を確認してから本実行してください。意図しないファイル名変更を防げます。
Linuxでファイル名変更できないときの原因
指定したファイルが存在しない
以下のエラーが表示される場合、変更前のファイル名またはパスが間違っています。
mv: 'old_file.txt' を stat できません: そのようなファイルやディレクトリはありません
lsコマンドでファイルの存在とファイル名の正確なスペルを確認しましょう。
ファイル名やパスの入力ミス
Linuxのファイル名は大文字・小文字を区別します。Report.txtとreport.txtは別のファイルとして扱われます。Tabキーによるファイル名補完を活用してタイプミスを防ぎましょう。
権限が不足している
以下のエラーが表示される場合、対象ファイルまたはディレクトリへの書き込み権限がありません。
mv: 'old_file.txt' の名前を 'new_file.txt' に変更できません: 許可がありません
ls -lでパーミッションを確認し、必要に応じてsudoを付けて実行するか、chmodまたはchownで権限を修正します。
変更後の名前に使えない文字や空白が含まれている
スペースを含むファイル名は意図しない動作を引き起こします。スペースを含むファイル名を指定する場合は引用符で囲む必要があります。
# 誤り(スペースで2つの引数として解釈される)
mv old file.txt new file.txt
# 正しい
mv "old file.txt" "new file.txt"
対象がファイルではなくディレクトリになっている
ファイルとディレクトリで挙動が異なる点を前述しました。操作前にls -laで対象の種類(dがディレクトリ、-がファイル)を確認することを習慣にしてください。
Linuxでファイル名変更するときの注意点
Linuxのmvコマンドを使った実践的なファイル操作の応用例はこちらも参考になります。 また、Linuxコマンドの使い方に関するさらに詳しい情報はkakiro-webでも解説しています。
大文字と小文字は区別される
Linuxのファイルシステム(ext4など)は大文字・小文字を区別します。File.txtとfile.txtは別ファイルとして共存できます。同名に見えても実は大文字・小文字が違うというケースに注意してください。
スペースを含むファイル名は引用符で囲む
スペースはコマンドライン上では引数の区切り文字として解釈されます。スペースを含むファイル名を扱う際はダブルクォートまたはシングルクォートで囲みます。
mv "my document.txt" "my_document.txt"
バックスラッシュでスペースをエスケープする方法もあります。
mv my\ document.txt my_document.txt
相対パスと絶対パスを正しく使い分ける
- 相対パス: 現在いるディレクトリ(カレントディレクトリ)からの位置指定。例:
docs/report.txt - 絶対パス: ルートから始まる完全なパス。例:
/home/user/docs/report.txt
どのディレクトリにいるかによって相対パスの解釈が変わるため、複雑な操作では絶対パスを使うと安全です。pwdコマンドで現在地を確認する習慣をつけましょう。
重要ファイルは事前にバックアップする
# バックアップを作ってからリネーム
cp important_file.txt important_file.txt.bak
mv important_file.txt new_name.txt
Linuxのmvコマンドはゴミ箱に移動せず直接操作します。誤って上書きしたファイルの復元は困難です。重要なファイルは必ず事前にcpコマンドでバックアップを取ってから操作してください。
コマンド実行前に変更内容を確認する
実行前に変更対象をlsコマンドで確認し、変更後の名前が存在しないことを確かめます。特に本番サーバー上での操作では、慎重さが事故防止につながります。
Linuxのファイル名変更に関するよくある質問
Linuxでファイル名を変更するコマンドは何ですか?
基本はmvコマンドです。mv 旧ファイル名 新ファイル名の形式で実行します。専用のリネームコマンドはなく、mvコマンドが移動とリネームを兼ねています。複数ファイルの一括変更にはrenameコマンドを使います。
mvコマンドでディレクトリ名も変更できますか?
はい、できます。ファイルとまったく同じ構文でmv 旧ディレクトリ名 新ディレクトリ名を実行します。ただし、変更後の名前として既存のディレクトリを指定した場合は上書きではなく「その中に移動」する挙動になるため注意が必要です。
mvコマンドで複数ファイルを一括変更できますか?
mvコマンド単体では1対1のリネームしかできません。複数ファイルを一括変更するにはrenameコマンドやシェルスクリプトを使います。大量のファイルを扱う場合はdry-runで事前確認することを強く推奨します。
ファイル名変更とファイル移動の違いは何ですか?
Linuxのファイルシステム内部では同じ操作です。同じディレクトリで別名を指定すれば「リネーム」、別ディレクトリを指定すれば「移動」として見えますが、どちらもmvコマンド1つで行えます。
既存ファイル名を指定するとどうなりますか?
対象がファイルの場合は警告なしに上書き(元のファイルが消える)されます。対象がディレクトリの場合は指定したディレクトリの中に移動されます。どちらの場合も意図しない結果になりやすいため、事前の確認が重要です。
renameコマンドとmvコマンドはどう使い分けますか?
1件のリネームにはmvコマンドが適しています。パターンや正規表現を使って複数ファイルを一括変更したい場合はrenameコマンドを使います。日常的なリネームはmv、大量ファイルの整理やバッチ処理はrenameというのが基本の使い分けです。
まとめ
Linuxのファイル名変更はmvコマンドが基本
Linuxでのファイル名変更はmv 旧名前 新名前のシンプルな構文で実行できます。ファイルもディレクトリも同じコマンドで扱えるため、まずはmvコマンドを確実に使いこなすことが第一歩です。
既存ファイルや既存ディレクトリを指定したときの挙動に注意する
- 既存ファイル名を変更後の名前に指定すると確認なしで上書きされる
- 既存ディレクトリを変更後の名前に指定するとその中に移動される
- 実行前に必ず
lsで対象を確認し、-iや-nオプションを活用する - 重要ファイルは
cpでバックアップを取ってから操作する - スペースを含むファイル名は引用符で囲む
一括変更にはrenameコマンドを使い分けると効率的
複数ファイルのリネームが必要な場面ではrenameコマンドを活用しましょう。正規表現によるパターン指定で、拡張子の一括変更やファイル名の規則的な変換が効率よく行えます。本実行前には必ず-nオプションでdry-runを実施し、変更内容を確認する習慣をつけることが、Linuxでの安全なファイル管理への近道です。

