Linux mvコマンド入門
ファイルの移動と名前変更
mvコマンドでファイルやディレクトリの移動・リネームを行う方法を基礎から実践まで解説します。
こんな人向けの記事です
- ファイルの移動やリネームの基本を学びたい方
- 安全にファイルを移動するテクニックを知りたい方
- 一括リネームの方法を知りたい方
Step 1mvコマンドの基本
mvコマンドは「move」の略で、ファイルやディレクトリの移動とリネームを行うコマンドです。cpと違い、元のファイルは残りません。
ターミナル
# ファイルを別のディレクトリに移動
mv file.txt /home/user/Documents/
# 複数ファイルを移動
mv file1.txt file2.txt /backup/
# ワイルドカードで一括移動
mv *.log /var/log/archive/
# ディレクトリを移動
mv old_dir/ /new/location/
cpとの違い: cpはコピー(元ファイルが残る)、mvは移動(元ファイルがなくなる)。mvはディレクトリ移動に-rオプション不要です。
Step 2ファイルのリネーム
mvコマンドは同じディレクトリ内で使うとリネームになります。
ターミナル
# ファイル名を変更
mv old_name.txt new_name.txt
# ディレクトリ名を変更
mv old_project/ new_project/
# 拡張子を変更
mv document.txt document.md
# 大文字小文字の変更
mv README readme.md
注意: 移動先に同名ファイルがある場合、確認なしで上書きされます。重要なファイルを扱う場合は-iオプションで上書き確認を有効にしましょう。
Step 3よく使うオプション一覧
mvコマンドの主要なオプションとその使用場面を紹介します。
ターミナル
# 上書き確認
mv -i file.txt /backup/ # 上書き前に確認
# 上書きしない
mv -n file.txt /backup/ # 既存ファイルを上書きしない
# 更新されたファイルのみ移動
mv -u *.txt /backup/
# 詳細表示
mv -v file.txt /backup/ # 移動内容を表示
# バックアップを作成してから上書き
mv --backup=numbered file.txt /backup/
# 強制移動
mv -f file.txt /backup/ # 確認なしで上書き
| オプション | 説明 |
|---|---|
-i | 上書き前に確認を求める |
-n | 既存ファイルを上書きしない |
-u | 移動先より新しい場合のみ移動 |
-v | 移動内容を詳細表示 |
-f | 確認なしで強制上書き |
--backup | 上書き前にバックアップを作成 |
Step 4実践的な使用例
日常業務でよく使用されるmvコマンドの実践例を紹介します。
ターミナル
# 日付付きでリネーム(バックアップ用)
mv config.conf config.conf.$(date +%Y%m%d)
# ログファイルのアーカイブ
mv /var/log/app/*.log /var/log/archive/
# ダウンロードファイルの整理
mv ~/Downloads/*.pdf ~/Documents/PDFs/
mv ~/Downloads/*.jpg ~/Pictures/
# findと組み合わせた一括移動
find . -name "*.bak" -exec mv {} /backup/ \;
# 安全な移動(確認付き+詳細表示)
mv -iv source/* destination/
# 一括リネーム(forループ)
for f in *.txt; do
mv "$f" "prefix_$f"
done
一括リネームのヒント: 複雑なリネームにはrenameコマンド(Perl版)が便利です。正規表現でパターンを指定できます。例: rename 's/.txt/.md/' *.txt