Linuxを扱ううえで、ファイルやディレクトリの整理は日常的な作業です。そんなときに活躍するのが「mv」コマンドです。このコマンドは、ファイルやディレクトリを「移動」したり、「名前を変更」したりする際に使用されます。使い方はとてもシンプルですが、オプションの使い方や注意点を理解しておくことで、作業の効率がグンと上がります。この記事では、mvコマンドの基本から応用までを、実例とともにわかりやすく解説します。Linux初心者から中級者の方まで、ぜひ参考にしてください。
mvコマンドとは?基本の役割を理解しよう
mv(move)コマンドは、Linuxでファイルやディレクトリを「移動(引っ越し)」するためのコマンドです。しかし、単なる移動にとどまらず、「名前の変更(リネーム)」にも使える便利なコマンドです。
基本的な構文は以下の通りです。
mv [オプション] 移動元 移動先
たとえば、「file.txt」というファイルを「backup」フォルダに移動する場合は以下のように書きます。
mv file.txt backup/
「file.txt」の名前を「document.txt」に変更する場合も、mvコマンドで実行できます。
mv file.txt document.txt
つまり、移動先にディレクトリが指定されていれば「移動」、ファイル名が指定されていれば「名前変更」になります。
ファイルの移動:基本的な使用例
まずはシンプルなファイルの移動から見ていきましょう。
同一ディレクトリ内のファイル名変更
mv oldname.txt newname.txt
このように書くと、oldname.txt
というファイルの名前が newname.txt
に変わります。
ファイルを別のディレクトリに移動
mv report.txt /home/user/reports/
このコマンドで、report.txt
を /home/user/reports/
に移動します。移動先のディレクトリが存在しない場合はエラーになりますので、事前に確認しておきましょう。
複数ファイルをまとめて移動
mv file1.txt file2.txt file3.txt /home/user/docs/
複数ファイルを一度に指定して、1つのディレクトリに移動できます。
ディレクトリの移動と名前変更
mvコマンドはファイルだけでなく、ディレクトリも移動できます。
ディレクトリの移動
mv myfolder /home/user/backup/
このコマンドで myfolder
ディレクトリを /home/user/backup/
に移動できます。
ディレクトリのリネーム
mv old_folder new_folder
このようにすると、old_folder
の名前を new_folder
に変更します。中のファイルもすべて一緒にリネームされます。
上書きの注意点と-fオプションの使い方
mvコマンドは、移動先に同じ名前のファイルがあると上書きしてしまいます。
たとえば、以下のようなケースです。
mv data.txt /home/user/
/home/user/
にすでに data.txt
があると、何の警告もなく上書きされてしまいます。
-iオプションで確認を入れる
上書きしたくない場合は、-i
(interactive)オプションを使うと安心です。
mv -i data.txt /home/user/
この場合、上書き確認が表示されるので、意図しない上書きを防げます。
-fオプションで強制上書き
逆に、確認なしで強制的に上書きしたい場合は -f
(force)を使います。
mv -f data.txt /home/user/
この場合、確認なしで上書きされますので注意が必要です。
-vオプションで処理を見える化
mvコマンドは何も表示しないのが通常です。何が起きたか知りたいときは、-v
(verbose)オプションを使うと、処理内容が表示されて便利です。
mv -v file.txt backup/
出力例:
renamed 'file.txt' -> 'backup/file.txt'
初心者のうちは -v
を付けておくと、安心して作業できます。
mvコマンドを使った実用的なテクニック
拡張子でまとめて移動
特定の拡張子を持つファイルを一括で移動したいときは、ワイルドカードを使います。
mv *.jpg /home/user/pictures/
これでカレントディレクトリ内のすべての .jpg
ファイルを pictures
フォルダに移動できます。
findと組み合わせて高度な移動
たとえば、「1日以上前に更新されたファイルをログフォルダに移動したい」というケース。
find . -name "*.log" -mtime +1 -exec mv {} /home/user/old_logs/ \;
このように find
と mv
を組み合わせることで、かなり高度な移動処理が可能になります。
mvとcp・rmの違いに注意しよう
初心者が混乱しやすいのが、cp
(コピー)や rm
(削除)との違いです。
mv
:移動(元の場所からはなくなる)cp
:コピー(元の場所にも残る)rm
:削除(ファイルやディレクトリを消す)
たとえば、間違ってcp
ではなくmv
を使うと、元の場所にファイルが残らず困ることがあります。目的に応じて使い分けましょう。
よくあるエラーとその対処法
「Permission denied」
アクセス権限がない場所へファイルを移動しようとするとこのエラーが出ます。sudo
を使うことで解決する場合があります。
sudo mv important.txt /etc/
「No such file or directory」
ファイル名やディレクトリ名が間違っている場合に表示されます。スペルミスやパスの確認を行いましょう。
「Is a directory」
ファイルのつもりで移動先にディレクトリを指定しているときに出ることがあります。適切なパスか確認してください。
まとめ:mvコマンドを自在に使いこなそう
mvコマンドは、シンプルながら非常に多用途なLinuxの基本コマンドです。ファイルやディレクトリの移動だけでなく、名前の変更もでき、さらに-i
や-v
などのオプションを組み合わせることで、誤操作を防ぎつつ安全に作業が行えます。特に作業の自動化やスクリプトを書く際には、mvコマンドの正しい使い方が欠かせません。今回紹介した基本と応用のテクニックを押さえて、ぜひ日々の作業に活用してください。