Linuxに元に戻す機能はありますか?

Linuxに元に戻す機能はありますか?

バッチスクリプトで複数のファイルの名前を変更しています。名前を変更しなくても変更をキャンセルする方法はありますか?

Linuxはいくつかの基本的なingメソッドを提供していますかundo

答え1

Linux(他の unices と同様)は、デフォルトでは元に戻す機能を提供しません。私たちの哲学は、消えると消えるということです。重要な内容であればバックアップしてください。

以前のバージョンのコピーを自動的に保持するサーキットブレーカファイルシステムがあります。ファイルのコピー。もちろん、これは多くのリソースを使用します。残念ながら維持されません。心配別のオプションかもしれませんが、試したことはありません。

これらの事故を防ぐための最善の方法は、バージョン管理システム(cvs、bazaar、darcs、git、mercurial、subversionなど)を使用することです。学習には少し時間がかかりますが、中長期的に大きな利点を提供します。

答え2

残念ながら。

答え3

いいえ、すべてのUnixには魔法のように元に戻す機能はありません。 Unixは、あなたがしていることを知っていると仮定します。元に戻すサポートにはVCSを使用してください(テキストエディタにVCSが組み込まれている可能性があります)。

ほとんどのファイルシステムには、これを透過的に実行する機能はありません。

MacとWindowsのTime MachineとSystem Recoveryは、それぞれバックアップ/変更制御システムです。

答え4

Linux / Unixシステムにアンドゥ機能がない理由は、ほとんどのファイルシステムが情報を保存する方法です。ファイルメタ情報はすべてディスクの前面に保存され、ディスクの残りの部分のinodeを参照します。通常、ほとんどのファイルシステムはこのメタ領域のファイルに10個のブロックを割り当てます。最初の7つは最初の7つのinodeを表します。 8番目と9番目はinodeリスト(二重接続ブロック)に入り、10番目はリストのリスト(三重接続ブロック)に入ります。これはファイルシステム(ext4、jfs、xfsなど)によって異なりますが、これらのブロックリストは通常​​2GBから数テラバイトまでのすべてのファイルサイズを処理できます。

ただし、これらの情報はすべてディスクの前面に保存されているため、ファイルが削除されると、ディスクのinodeを参照して、ファイルが使用したメタデータが何であるかがわかりません。対照的に、FAT32とNTFSは実際にいくつかのヘッダー情報をファイル自体に格納するため、ブロックセットがどのファイルに属しているかを簡単に識別できます(その領域が最新のファイルによって回収されていない場合)。 Linuxタスクでは、何かを削除すると、効率のためにほとんど常に新しいデータで最初に上書きされます。

関連情報