ネーミングはあれですが、機能は一級品です! コマンドラインで実行して失敗した!と気付くことってありますよね。大抵Linux/Unix系のコマンドは可逆ではないので失敗したと後から気付いてもまさに後の祭りになります。rmとかファイルの編集、GitやSubversionのチェックアウトなどです。 そんな時に活躍するのがUncoです。ファイル変更に関わるコマンドをUndo可能にするすごいツールです。

Uncoの使い方

使い方は簡単で、実際に実行するコマンドの前に unco record -- を付けるだけです。例えば、

$ unco record -- rm hoge.txt

といった具合です。これで履歴が取られます。履歴を確認するにはhistoryサブコマンドを使います。

$ unco history
index    command (*=undone)
     1   rm hoge.txt  (cwd:/Users/nakatsugawa/Downloads/unco)

そしてこの時に出るindexを指定してundoができます。

$ unco undo 1
unco:successfully undid the recorded changes

これで見事ファイルが復元されるといった具合です。redoで再実行もできます。

マンページ。

Uncoをalias設定にしておくとかなり幸せになれる気がします。ファイルシステムへのアクセスをフックして、編集前や削除前の内容を記録していますので、どのようなコマンドでも使えるのが利点です。削除して大変なことになった!という方はぜひ使ってみましょう。

UncoはC製、MIT Licenseのオープンソース・ソフトウェアです。

Kazuho’s Weblog: Announcing Unco - undo changes to files made by any command kazuho/unco