• ベストアンサー

mvコマンドについて

サーバのデータをNASにバックアップしている途中に誤ってシャットダウンしてしまいました. mvコマンドは,逐一移動→削除,..,,移動→削除をくりかえしているのでしょうか? それとも,すべてのファイルを移動してから元データを削除しているのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

mv -R / /nas といった移動であれば、個々のファイルはコピー→削除を繰り返しています。 移動中にOSをシャットダウンしたり、コマンドを強制的に停止した場合、移動中のファイルはコピー元に残ります。 (移動が完了するまで元ファイルの削除は行われません) ですので、強制的なシャットダウンによってファイルシステムが壊れてfsckが必要になるようなケースを除けば、欠損しているファイルはないハズです。 もし元ファイルが削除され、コピー先にも存在しないような場合は、Linux系のOSであればlsofで復元できることもあります。 参考URLを参照にしてみてください。

参考URL:
http://www.itmedia.co.jp/enterprise/articles/0611/30/news007.html

その他の回答 (2)

回答No.3

(Linuxということで、GNU coreutils の mv を仮定します。 他のUNIXでは違うかもしれません) ご質問のケースでは、どのようなコマンドを打ったか、どの段階でシャットダウンしたかで、微妙に結果が変わります。mv コマンドは -v オプションをつけることで、mvコマンドが実際に何を行ったか詳細なログを出力できるので、実験してみていただけると分かりますが、例えば、 mv -v サーバ上のディレクトリ NAS上のディレクトリ というコマンドを実行した場合は、 > すべてのファイルを移動してから元データを削除 これが正しいです。この場合 mv 実行中にサーバをシャットダウンすると、次のいずれかの結果となるはずです。 1. 全部のファイルの移動(コピー)する前に シャットダウンした。 ⇒ 移動元には変更なし、 移動先は一部のファイルしかコピーされてない 2. 全部のファイルを移動完了し、移動元の ファイル(群)を削除中にシャットダウンした   ⇒ 移動元には一部のファイルしか残っていない、 移動先には全部のファイルがコピーされている。 1. だったのか 2. だったのか判定する方法は、(移動元と移動先のファイル/ディレクトリを変更していないという条件で)移動元の移動先の全ファイルのリストを比較する方法が考えられます。 ・移動先に無いファイルが、移動元に有るなら 1. のケース ・移動元に無いファイルが、移動先に有るなら 2. のケース ということになります。 一方、 mv -v サーバ上のディレクトリ1 サーバ上のディレクトリ2 NAS上のディレクトリ のように、移動元が複数あるような書き方をすると、 「ディレクトリ1とその中の全ファイルをコピー後、ディレクトリ1を削除し、次にディレクトリ2とその中の全ファイルをコピー後、ディレクトリ2を削除して終了」 という動作となります。

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.1

こんにちは >mvコマンドは,逐一移動→削除,..,,移動→削除をくりかえしているのでしょうか?  プログラマー的には物理ドライブが変わらない限り、リンク(ファイルの有りかを示すインデックスとか)を変えるだけで物理的な操作(コピーや削除)はしないものですが。。。

関連するQ&A