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 コマンドは、-i フラグを指定しなければ多数の既存のファイルを上書きしてしまうことがあります。 -i フラグを指定した場合、ファイルを上書きする前に確認プロンプトが表示されます。 -f フラグと -i フラグを共に指定した場合、最後に指定したフラグが優先されます。

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 に診断メッセージを印刷します。

mv コマンドを途中で終了させると、このコマンドは送信元ファイルまたは宛先のパスのいずれかを修正します。
注: mv コマンドは、フラグの終わりを示す区切り文字として -- (ダッシュ、ダッシュ) パラメーターをサポートします。

オブジェクトが NFS バージョン 4 の委託としてエクスポートされる場合は、mv コマンドは、そのオブジェクトを移動しません。 委託オブジェクトは、「ビジー」としてマーク付けされ、アンエクスポートされるまでその状態を保ちます。

注: このコマンドによって生成される read および write システム・コールの入出力バッファー・サイズは、AIX_STDBUFSZ 環境変数を使用して構成できます。

フラグ

注意: mv コマンドは、-i フラグを指定しなければ多数の既存のファイルを上書きしてしまうことがあります。 -i フラグを指定した場合、ファイルを上書きする前に確認プロンプトが表示されます。 -f フラグと -i フラグを共に指定した場合、最後に指定したフラグが優先されます。

項目 説明
-d ソース・ファイルは、ターゲット上に暗号化解除 (平文) 形式で保管されます。
-e ターゲット・ファイルシステムが Encrypted File System (EFS) である場合は、ソース・ファイルは暗号化形式で保管されます。
-E -E オプションには、次のいずれかの引数が必要です。 -E オプションを省略すると、warn がデフォルトの動作となります。
force
ファイルの固定エクステント・サイズまたはスペース予約を保持できない場合、 そのファイルにおける mv 操作は失敗します。
ignore
エクステント属性の保持のエラーを無視します。
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 エラー
注: -f フラグを指定しない限り、暗号化ファイルを平文ファイルで上書きすることはできず、その逆もまた同様です。ターゲットの暗号化状況は、-e または -d フラグ、-f フラグと一緒に -e または -d フラグを指定しない場合の暗号化継承、および暗号化継承が活動状態でない場合のソース・ファイルの暗号化状況に応じて決まります。

  1. ファイル名を変更するには、次のように入力します。
    mv appendix apndx.a

    このコマンドにより、名前が appendix から apndx.a に変更されます。 apndx.a というファイルが既に存在する場合は、 古い内容が appendix の内容に置き換えられます。

  2. ディレクトリーを移動するには、次のように入力します。
    mv book manual

    manual が存在する場合は、このコマンドにより book の下のファイルとディレクトリーはすべてディレクトリー manual に移動されます。 manual がない場合は、ディレクトリー book の名前が manual に変更されます。

  3. ファイルを他のディレクトリーに移動し、新しい名前を付けるには、次のように入力します。
    mv intro manual/chap1

    このコマンドにより、 intromanual/chap1 に移動されます。 現行ディレクトリーからファイル名 intro が除去され、同じファイルが chap1 という名前でディレクトリー manual に現れます。

  4. ファイルを同じ名前で他のディレクトリーに移動するには、次のように入力します。
    mv chap3 manual

    このコマンドにより、 chap3manual/chap3

    に移動されます。

    注: 例 1 と 3 では 2 つのファイルの名前を付け、例 2 では既存の 2 つのディレクトリーの名前を付けています。 また、例 4 ではファイルとディレクトリーに 1 つずつ名前を付けています。

  5. 複数のファイルを他のディレクトリーに移動するには、次のように入力します。
    mv chap4 jim/chap5 /home/manual

    このコマンドにより、chap4 ファイルが /home/manual/chap4 ファイル・ディレクトリーに、jim/chap5 ファイルが /home/manual/chap5 ファイルに移動されます。

  6. パターン・マッチング文字を指定して mv コマンドを使用するには、次のように入力します。
    mv manual/* .

    このコマンドにより、manual ディレクトリー内のすべてのファイルは、 manual ディレクトリーにあったときと同じ名前のまま、 現行ディレクトリー . (ピリオド) に移動されます。 また、 manual ディレクトリーは空になります。 アスタリスクとピリオドの間にはスペースを入力する必要があります。

    注: パターン・マッチング文字は、 既存のファイルの名前のみを展開します。 例えば、コマンド mv intro man*/chap1 は、 ファイル manual/chap1 が存在しないと実行されません。

終了状況

項目 説明
0 すべての入力ファイルが正常に移動されました。
>0 エラーが発生しました。

ファイル

項目 説明
/usr/bin/mv mv コマンドが入っています。