mv コマンド
目的
ファイルを移動します。
構文
ファイルを移動して名前変更する
mv [ -d ] [ -e ] [ -E{force|ignore|warn} ] [ -i | -f ] [ -I ] SourceFile ... TargetFile
ディレクトリーを移動して名前変更する
mv [ -d ] [ -e ] -E{force|ignore|warn} ] [ -i | -f ] [ -I ] SourceDirectory ... TargetDirectory
ファイルまたはディレクトリーを元のファイル名のままで別のディレクトリーに移動する
mv [ -d ] [ -e ] -E{力|ignore|警告} ] [ -i | -f ] [ -I ] SourceFile/SourceDirectory TargetDirectory
説明
mv コマンドは、ディレクトリー間でファイルやディレクトリーを移動したり、ファイルまたはディレクトリーの名前を変更したりします。 ファイルまたはディレクトリーを新しいディレクトリーに移動する場合は、基本ファイル名は変わりません。 ファイルを移動する場合、他のファイルへのリンクはすべてそのまま保持されます。ただし、他のファイルシステムに移動する場合は、リンクは保持されません。 ディレクトリーを既存のディレクトリーに移動する場合、ディレクトリーとその内容は既存のディレクトリーに追加されます。
mv コマンドを使用してファイルやディレクトリーの名前を変更する場合、TargetDirectory パラメーターには新規ファイル名または新規ディレクトリーのパス名を指定できます。
ファイルを移動することで、書き込み許可が設定されていない既存のファイルが上書きされる場合および標準入力がワークステーションである場合は、mv コマンドはファイル許可コードを表示して、標準入力から 1 行を読み取ります。 その行が以下で始まっているとします。yまたはロケールに相当するy mv コマンドはファイルを移動します。 応答が以下のもの以外の場合:ymv コマンドは、そのファイルに対して何も実行せず、次に指定されたファイルから処理を続行します。 TargetFile が ACL と関連がある場合、 表示されているファイル許可コードは、完全にアクセス許可を表していないことがあります。 SourceFile の親ディレクトリーが書き込み可能であり、 スティッキー・ビット・セットを持っている場合、 次の条件のうちの 1 つ以上が当てはまります。
- ユーザーはファイルを所有していなければならない。
- ユーザーはディレクトリーを所有していなければならない。
- ユーザーは特権ユーザーでなければならない。
- ファイルはユーザーによって書き込み可能でなければならない。
この警告メッセージと入力プロンプトは、 -f オプションを使用して指定変更できます。
mv コマンドを使用して、同じファイルシステム内または複数のファイルシステム間でファイルを移動することができます。 1 つのファイルシステムで作業をする場合でも、複数のファイルシステム間で作業をする場合でも、mv コマンドはそのファイルをターゲット・ファイルシステムにコピーし、元のファイルを削除します。 mv コマンドは、元のファイルの最新のデータ修正時刻、 最新のアクセス時刻、ユーザー ID、グループ ID、ファイル・モード、拡張属性、および ACL を新しいファイルに保存します。 シンボリック・リンクの場合、 mv コマンドは、 リンク自体のオーナーおよびグループのみを保存します。
オーナーおよびグループ ID を保存できない場合、 mv コマンドは、ターゲット内の S_ISUID および S_ISGID ビットを消去します。 終了コードに影響はありませんが、これらのビットを消去できない場合、 mv コマンドは、stderr に診断メッセージを印刷します。
オブジェクトが NFS バージョン 4 参照としてエクスポートされている場合、 mv コマンドはオブジェクトを移動しません。 委託オブジェクトは、「ビジー」としてマーク付けされ、アンエクスポートされるまでその状態を保ちます。
フラグ
重要: -i フラグを指定しない限り、 mv コマンドは多数の既存ファイルを上書きすることができます。 -i フラグを指定した場合、ファイルを上書きする前に確認プロンプトが表示されます。 -f フラグと -i フラグを共に指定した場合、最後に指定したフラグが優先されます。
| 項目 | 説明 |
|---|---|
| -d | ソース・ファイルは、ターゲット上に暗号化解除 (平文) 形式で保管されます。 |
| -e | ターゲット・ファイルシステムが Encrypted File System (EFS) である場合は、ソース・ファイルは暗号化形式で保管されます。 |
| -E | -E オプションには、次のいずれかの引数が必要です。 -E オプションを省略すると、warn がデフォルトの動作となります。
|
| -f | 既存のファイルを上書きする前にプロンプトを表示しません。 |
| -i | ファイルやディレクトリーを既存のパス名に移動する前に、ファイルの名前の後ろに疑問符を付けてプロンプトを表示します。 次で始まる行で応答するとします。yまたはロケールに相当するy移動は続行されます。 その他の応答では移動が実行されません。 |
| -I | ACL 変換中に警告メッセージを抑制します。 |
| mv コマンドの明示的フラグ | ソース・ファイル | ターゲット・ファイル・システム | 結果 |
|---|---|---|---|
| -e (暗号化) | 非 EFS | 非 EFS | エラー |
| -e | 非 EFS | EFS | 暗号化ファイル |
| -e | EFS | EFS | 暗号化ファイル |
| -e | EFS | 非 EFS | エラー |
| -d (暗号化解除) | 非 EFS | 非 EFS | 平文ファイル |
| -d | 非 EFS | EFS | 平文ファイル |
| -d | EFS | 非 EFS | 平文ファイル |
| -d | EFS | EFS | 平文ファイル |
| 明示的なフラグなし | 非 EFS | 非 EFS | 平文ファイル |
| 明示的なフラグなし | 非 EFS | EFS | ターゲット・ファイルシステムが EFS により活動化される場合は、ターゲット・ファイルは暗号化ファイルです。 それ以外の場合は、ターゲット・ファイルは平文ファイルです。 |
| 明示的なフラグなし | EFS | EFS | 暗号化ファイル |
| 明示的なフラグなし | EFS | 非 EFS | エラー |
例
- ファイル名を変更するには、次のように入力します。
mv appendix apndx.aこのコマンドは名前を変更しますappendixへapndx.a. ファイルの名前がapndx.a古い内容が既に存在しています。古い内容は、appendix.
- ディレクトリーを移動するには、次のように入力します。
mv book manualこのコマンドは, その下のすべてのファイルおよびディレクトリーを移動します。book名前が指定されたディレクトリーにmanual、条件manual存在する。 それ以外の場合は、次のディレクトリーbook名前変更manual.
- ファイルを別のディレクトリーに移動して新しい名前を付けるには、次のように入力します。
mv intro manual/chap1このコマンドは、introへmanual/chap1. 名前intro現行ディレクトリーから削除され、同じファイルが次のように表示されます。chap1ディレクトリー内manual.
- ファイルを同じ名前で別のディレクトリーに移動するには、次のように入力します。
mv chap3 manualこのコマンドは、chap3へmanual/chap3
注: 例 1 と 3 では 2 つのファイルの名前を付け、例 2 では既存の 2 つのディレクトリーの名前を付けています。 また、例 4 ではファイルとディレクトリーに 1 つずつ名前を付けています。
- 複数のファイルを別のディレクトリーに移動するには、次のように入力します。
mv chap4 jim/chap5 /home/manualこのコマンドは、chap4ファイルを /home/manual/chap4ファイル・ディレクトリーおよびjim/chap5ファイルを/home/manual/chap5。
- パターン・マッチング文字を指定して mv コマンドを使用するには、次のように入力します。
mv manual/* .このコマンドは, システム内のすべてのファイルを移動します。manualディレクトリーを現行ディレクトリーに追加します。 (ピリオド)、それらの名前を保持するmanual。この移動も空になります。manualアスタリスクとピリオドの間にスペースを入力しなければなりません。
注: パターン・マッチング文字は、 既存のファイルの名前のみを展開します。 例えば、次のコマンドを考えます。mv intro man*/chap1ファイルが機能しない場合manual/chap1が存在しません。
終了状況
| 項目 | 説明 |
|---|---|
| 0 | すべての入力ファイルが正常に移動されました。 |
| >0 | エラーが発生しました。 |
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/mv | mv コマンドが入っています。 |