Heim  >  Artikel  >  System-Tutorial  >  Verabschieden Sie sich von der Sorge, versehentlich Dateien unter Linux zu löschen, Mama muss sich keine Sorgen mehr machen

Verabschieden Sie sich von der Sorge, versehentlich Dateien unter Linux zu löschen, Mama muss sich keine Sorgen mehr machen

WBOY
WBOYnach vorne
2023-12-30 15:55:12538Durchsuche

Eine Kurzanleitung zur Verwendung von Terminal zum Wiederherstellen gelöschter Dateien bei noch laufenden Prozessen auf Ihrem Linux-System.

Gelöschte Dateien können in vielen Fällen wiederhergestellt werden, beispielsweise wenn auf der Datei ein aktiver Prozess läuft und sie derzeit von einem oder mehreren Benutzern verwendet wird. In Linux-Systemen wird jedem aktuell ausgeführten Prozess eine ID zugewiesen, die als Prozess-ID (PID) bezeichnet wird, und im Verzeichnis /proc gespeichert. Das ist genau das, was wir brauchen, um gelöschte Dateien in einem noch laufenden Prozess (mit PID) wiederherzustellen.

Berechnen Sie den MD5-Hash der Originaldatei

Vor dem Löschen berechnen wir den MD5 der Datei. Auf diese Weise können wir den ursprünglichen MD5-Hash mit dem MD5-Hash der wiederhergestellten Datei vergleichen. Durch diesen Vorgang wird sichergestellt, dass die Integrität der komprimierten Datei, die wir wiederherstellen, dieselbe ist und dass sie nicht beschädigt wurde.

md5sum opengapps.zip >> md5-opengapps.txt

Zum Anzeigen des Inhalts einer Textdatei.

cat md5-opengapps.txt

86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip

Nachdem Sie den MD5-Hash der komprimierten Datei überprüft haben. Wir halten die komprimierte Datei offen (LCTT-Anmerkung: Hier verwenden wir File-Roller, ein Dekomprimierungsprogramm mit grafischer Benutzeroberfläche, das in die GNOME-Umgebung integriert ist, um die komprimierte Datei offen zu halten; in der Desktop-Umgebung verwenden wir Desktop-Tools, um ein komprimiertes Archiv zu öffnen Es kann auch die gleiche Rolle spielen. Das Beispiel in diesem Artikel ist auch nicht sehr passend. Wenn die geöffnete Konfigurationsdatei eines Dienstprozesses gelöscht wird, ist diese Wiederherstellung sehr sinnvoll. Danach starten wir den Wiederherstellungsprozess der Dateien mit den folgenden Schritten:

rm opengapps.zip
Wiederherstellungsprozess gelöschter Dateien

Wie bereits erwähnt, befindet sich der laufende Prozess im Verzeichnis /proc. Mit dem folgenden Befehl können wir in diesem Verzeichnis nach dem benötigten Prozess suchen:

Da wir bereits wissen, dass Dateinamen die Erweiterung .zip enthalten, können wir mit der Erweiterung .zip suchen. Es schränkt die Ausgabeergebnisse ein und zeigt die erforderlichen Prozesse an.

ps -axu | grep .zip

m 13119 0.8 1.0 121788 30788 ? Sl 06:17 0:00 file-roller

/home/m/Downloads/Compressed/opengapps.zip

m 13164 0.0 0.0 5108 832 pts/20 S+ 06:18 0:00 grep --color=auto .zip

Dann gehen wir in das Verzeichnis mit der PID 13119 und öffnen das Unterverzeichnis fd.

cd /proc/13119/fd

Das fd-Verzeichnis (Dateideskriptor) enthält mehrere Dateien, einschließlich der, die wir wiederherstellen müssen. Diese Datei ist als Hardlink mit der Originaldatei verknüpft.

Alle Dateien im fd-Verzeichnis sind numerisch mit „Dateiname“ verknüpft. Um festzustellen, welche dieser Dateien mit der Originaldatei verknüpft ist, listen wir daher das Verzeichnis /fd mit der Option „Verbose Listing“ auf.

ls -l

total 0

lr-x------ 1 m m 64 Jul 14 06:17 0 -> /dev/null

lrwx------ 1 m m 64 Jul 14 06:17 1 -> socket:[26161]

lrwx------ 1 m m 64 Jul 14 06:17 10 -> anon_inode:[eventfd]

lr-x------ 1 m m 64 Jul 14 06:17 11 -> anon_inode:inotify

lrwx------ 1 m m 64 Jul 14 06:17 12 -> socket:[5752671]

lr-x------ 1 m m 64 Jul 14 06:17 13 -> /home/m/Downloads/Compressed/opengapps.zip (deleted)

lrwx------ 1 m m 64 Jul 14 06:17 2 -> socket:[26161]

lrwx------ 1 m m 64 Jul 14 06:17 3 -> anon_inode:[eventfd]

lrwx------ 1 m m 64 Jul 14 06:17 4 -> anon_inode:[eventfd]

lrwx------ 1 m m 64 Jul 14 06:17 5 -> socket:[5751361]

lrwx------ 1 m m 64 Jul 14 06:17 6 -> anon_inode:[eventfd]

lrwx------ 1 m m 64 Jul 14 06:17 7 -> anon_inode:[eventfd]

lrwx------ 1 m m 64 Jul 14 06:17 8 -> socket:[5751363]

lrwx------ 1 m m 64 Jul 14 06:17 9 -> socket:[5751365]

Wie Sie in der Terminalausgabe sehen können, wurde die Originaldatei „opengapps.zip“ gelöscht, sie ist jedoch weiterhin mit einem Dateinamen 13 mit der Prozess-PID 13119 verknüpft. Wir können es jedoch trotzdem wiederherstellen, indem wir die verknüpften Dateien an einen sicheren Ort kopieren.

cp 13 /home/m/Downloads/Compressed

Nachdem die Datei kopiert wurde. Wir kehren zum Verzeichnis mit den wiederhergestellten Dateien zurück und benennen es mit dem folgenden Befehl um.

mv 13 opengapps-recovered.zip
Berechnen Sie den MD5-Hash der wiederhergestellten Dateien

Da wir die Datei wiederhergestellt haben. Lassen Sie uns die Integrität der Datei überprüfen, um sicherzustellen, dass die Datei nicht beschädigt ist und mit dem Original übereinstimmt. Zuvor haben wir den MD5-Hash der Originaldatei gespeichert.

md5sum opengapps-recovered.zip >> md5-opengapps.txt

Dieser Befehl überprüft den MD5-Hash der Datei und hängt den MD5-Hash der neu wiederhergestellten Datei an die Datei an, um die beiden MD5-Hashes einfacher vergleichen zu können.

Der Inhalt einer Textdatei kann angezeigt werden, um die MD5-Hashwerte der ursprünglichen und wiederhergestellten Dateien zu vergleichen.

cat md5-opengapps.txt

86489b68b40d144f0e00a0ea8407f7c0 opengapps.zip

86489b68b40d144f0e00a0ea8407f7c0 opengapps-recovered.zip

Der MD5-Hash der wiederhergestellten Datei ist derselbe. Wir haben also unsere zuvor gelöschten Dateien erfolgreich mit konsistenter Dateiintegrität und einwandfreier Funktion wiederhergestellt.

妈妈再也不用担心在 Linux 中误删除文件了

Hinweis: In manchen Fällen können einige Dateien mit dem Befehl ps -axu nicht angezeigt werden. Versuchen Sie also, das laufende Programm zu überprüfen und Dateien daraus wiederherzustellen.

Angenommen, wir haben ein Video mit der Erweiterung .avi, das mit dem Totem Media Player abgespielt wird. Sie müssen lediglich die PID von Totem überprüfen und die gleichen Anweisungen wie in diesem Beispiel befolgen.

Um die PID eines laufenden Programms zu ermitteln, verwenden Sie den folgenden Befehl, gefolgt vom Namen des Programms.

pidof 程序名

Das obige ist der detaillierte Inhalt vonVerabschieden Sie sich von der Sorge, versehentlich Dateien unter Linux zu löschen, Mama muss sich keine Sorgen mehr machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:linuxprobe.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen