間違えて上書き保存して閉じてしまったときのために

ファイルを編集していると別の名前で保存をしようと思っていても間違えて上書き保存してしまうこともある。そんなときのための対処法をみていこう。


ファイルを開いて編集する。前のファイルも残しておきたいと別の名前で保存しようと考えている。だが人間はミスをするもので、間違えて上書き保存してしまう。元に戻るコマンドが有効な場合はいいが、アプリケーションによってはファイルを保存したとたん元に戻るコマンドの履歴を破棄してしまうものもある。また、そのままアプリケーションを終わらせてしまった場合は元に戻ることすらできない。

何も対処を施していない場合、こうなってしまったらもはや前のファイルを元に戻すことはできない。また時間をかけ手元のファイルを手動で復元するか、完全に元のファイルをあきらめてしまうしかなくなってしまう。こうなってしまわないようにするには、どのように対処していけばいいかを見ていこう。

予防

まずは絶対にこのような事態にならないように予防する方法をみていきたい。編集前にファイルを分離して、元のファイルは編集しない方法だ。

手動で履歴を残す

ファイルを編集する前にコピーを作成して、そのコピーを編集するようにする。そうすれば、前のファイルを残すことができる。この方法がは誰でもできる、最も簡単な方法だろう。だが、忘れてしまっては何もならない。ヒューマンエラーが入り込む余地がある。それでも、手軽にファイルの履歴を残したい場合は重宝する手法である。

バージョン管理ツールを導入する

バージョン管理ツールを導入して、ファイルはすべてバージョン管理ツールに登録しておく。すると、ファイルはすべてバージョン管理ツールによって保護されるので、チェックアウトしない限り編集することができない。ファイルを編集するにはチェックアウトして編集し、終わったらチェックインする。チェックインするたびにバージョンが追加され、もとにバージョンに戻ることもできる。バージョン管理ツールに関しては「プログラマーじゃなくてもドキュメント管理でバージョン管理ツールを使おう」でも述べている。

ただ、バージョン管理ツールを導入するのは少し敷居が高い。もともとプログラムのバージョン管理のために使われているので、WordやExcelしかアプリケーションを触ったことがない人にとっては、インストールして設定をするところからつまづくことがあるかもしれない。ただ、チャレンジする価値はある。

なお、バージョン管理ツールはオープンソースでフリーのSubversionがおすすめだ。

復元

予防のためにいちいちファイルを分けたり、チェックアウトやチェックインの作業なんか面倒だし、そもそもバージョン管理ツールなんてインストールしたくない場合、編集後にいかに復元ができるようにOSを設定しておくかが鍵になってくる。最近のOSにはファイルの履歴を自動で取得して、いつでも戻せるような仕組みが導入されている。これを利用すればもとのファイルを復元できる。だが、予防法よりも不完全だ。OSがファイルの履歴を残すタイミングまでにファイルを上書きしてしまったら、そこの部分は欠損してしまう。そのことを頭に入れておこう。

Macの場合

Macの場合はLionからオートセーブとバージョンの概念が導入されており、高い頻度でファイルの履歴を保存してくれる。オートセーブは手が止まったとき、作業が続いている場合は5分おきにバックグラウンドで保存が行われる機能だ。この機能を使うためには、新しくファイルを作ったらまずはファイルを保存しておく。

バージョンはファイルを編集するたびに新しいバージョンが作られる機能だ。すべてのバージョンを参照することができるので便利である。Macを使っているのであればファイルの欠損に関してはそれほど意識しなくてもいいかもしれない。

Windowsの場合

Windowsの場合もOSでファイルを保存する機能がある。ボリュームシャドウコピーという機能で、ハードディスクのスナップショットを取得しておく機能だ。ファイルのプロパティにある「以前のバージョン」から必要なファイルを開いて置き換えることも、別の場所にコピーすることもできる。

ただ、この機能の難点は、スナップショットが作成されるタイミングが1日1回ということと、この機能が有効なOSのEditionがWindows VistaならUltimate、Windows 7ならProfessional以降のEdition、両OSの企業向けEditionとなることだ。

このボリュームシャドウコピーが最初に搭載されたのはWindows Server 2003で、この機能を有効にすることにより共有フォルダでファルの履歴を見ることができ、いつでも好きなバージョンに戻すことができる。なお、Windows Serverの場合はスナップショットは1日1回ではなく、管理者が好きなだけ設定することができる。

バージョン管理ツールの導入が安全

個人的には、Macで作業する場合はOSのオートセーブとバージョンの機能に任せて、Windowsで作業する場合はバージョン管理ツールを導入してしまう。なお、本気でバージョンを管理したい場合はMacでもバージョン管理ツールを導入したほうがいいだろ。Macなら最初からSubversionが動いている。あとは管理ツールを入れるかコマンドをたたくだけでいい。

よかったら検討してみよう。