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{force|ignore|warn } ] [ -i | -f ] [ -I ] SourceFile/SourceDirectory TargetDirectory
説明
mv コマンドは、ディレクトリー間でファイルやディレクトリーを移動したり、ファイルまたはディレクトリーの名前を変更したりします。 ファイルまたはディレクトリーを新しいディレクトリーに移動する場合は、基本ファイル名は変わりません。 ファイルを移動する場合、他のファイルへのリンクはすべてそのまま保持されます。ただし、他のファイルシステムに移動する場合は、リンクは保持されません。 ディレクトリーを既存のディレクトリーに移動する場合、ディレクトリーとその内容は既存のディレクトリーに追加されます。
mv コマンドを使用してファイルやディレクトリーの名前を変更する場合、TargetDirectory パラメーターには新規ファイル名または新規ディレクトリーのパス名を指定できます。
ファイルを移動することで、書き込み許可が設定されていない既存のファイルが上書きされる場合および標準入力がワークステーションである場合は、mv コマンドはファイル許可コードを表示して、標準入力から 1 行を読み取ります。 もしその行が「y」またはロケールにおいて「y」に相当する文字で始まる場合、mv コマンドはファイルを移動します。 もし応答が y 以外なら、mv コマンドはそのファイルに対して何も実行せず、指定された次のファイルに進みます。 TargetFile が ACL と関連がある場合、 表示されているファイル許可コードは、完全にアクセス許可を表していないことがあります。 SourceFile の親ディレクトリーが書き込み可能であり、 スティッキー・ビット・セットを持っている場合、 次の条件のうちの 1 つ以上が当てはまります。
- ユーザーはファイルを所有していなければならない。
- ユーザーはディレクトリーを所有していなければならない。
- ユーザーは特権ユーザーでなければならない。
- ファイルはユーザーによって書き込み可能でなければならない。
この警告メッセージおよび入力プロンプトは、-f オプションを使ってオーバーライドできます。
mv コマンドを使用して、同じファイルシステム内または複数のファイルシステム間でファイルを移動することができます。 1 つのファイルシステムで作業をする場合でも、複数のファイルシステム間で作業をする場合でも、mv コマンドはそのファイルをターゲット・ファイルシステムにコピーし、元のファイルを削除します。 mv コマンドは、元のファイルの最新のデータ修正時刻、 最新のアクセス時刻、ユーザー ID、グループ ID、ファイル・モード、拡張属性、および ACL を新しいファイルに保存します。 シンボリック・リンクの場合、 mv コマンドは、 リンク自体のオーナーおよびグループのみを保存します。
オーナーおよびグループ ID を保存できない場合、 mv コマンドは、ターゲット内の S_ISUID および S_ISGID ビットを消去します。 終了コードに影響はありませんが、これらのビットを消去できない場合、 mv コマンドは、stderr に診断メッセージを印刷します。
オブジェクトが NFS バージョン 4 の委託としてエクスポートされる場合は、mv コマンドは、そのオブジェクトを移動しません。 委託オブジェクトは、「ビジー」としてマーク付けされ、アンエクスポートされるまでその状態を保ちます。
フラグ
注意: mv コマンドは、-i フラグを指定しなければ多数の既存のファイルを上書きしてしまうことがあります。 -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
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 コマンドが入っています。 |