Extrahiert 7zip in eine temporäre Datei und benennt die temporäre Datei dann in das eigentliche Ziel um?

Extrahiert 7zip in eine temporäre Datei und benennt die temporäre Datei dann in das eigentliche Ziel um?

Ich stelle diese Frage, weil ich ein Archiv entpacken möchte, das möglicherweise auch genau das Programm enthält, das 7zip zum Entpacken des Archivs aufruft. Unter Linux/UNIX kann eine Datei gelöscht oder umbenannt werden, während sie verwendet wird, aber nicht zum Schreiben geöffnet werden.

Antwort1

Die Antwort ist ja und nein.

Mit dem Extraktionsbefehl für 7zip sollte keine temporäre Datei erstellt werden. Dies geschieht jedoch unter Windows, wenn Sie Drag & Drop im Windows Explorer verwenden (aus der Dokumentation unterhttp://www.7-zip.org/faq.html, Strg-F-Suche nach Temp).

Sie verwenden jedoch Linux.

Um 100 % sicher zu sein, dass dies unter Linux nicht passiert, habe ich ein großes Archiv erstellt, extrahiert und das Programm über strace ausgeführt:

strace -a88 -- 7z e byob.7z 2>&1

Ich habe nur die vorhandenen Dateien im aktuellen Arbeitsverzeichnis gesehen, deren Verknüpfung vor dem Überschreiben aufgehoben war, und die einzigen Dateien, auf die zugegriffen wurde, waren Dateien im aktuellen Arbeitsverzeichnis.

Bitte testen Sie selbst, ob ich nichts übersehen habe.

Ich hoffe, das hilft Ihnen.

Antwort2

Ihre Frage bezieht sich auf eine ausführbare Datei (oder ein Skript) file1, die einen Mechanismus aufruft, der file1(an derselben Stelle) eine neue Datei erstellt.

Soweit ich Dateisysteme unter Unix verstehe, muss das Clobber-File entfernt werden file1, während es geöffnet ist (zur Ausführung). Dies geschieht folgendermaßen: Das Clobber-File löst file1die Verknüpfung des Originals auf, wird aber nicht wirklich entfernt, da es geöffnet ist. Es belegt jedoch nicht mehr den Namen file1in diesem Verzeichnis. Das neue file1wird an einem anderen Ort erstellt (unter dem richtigen Namen). Wenn das ältere file1die Ausführung abgeschlossen hat und beendet wird, wird es gelöscht. Sie sollten jedoch das neue file1vorhandene File behalten.

Vorbehalt: Dies ist größtenteils eine Vermutung, die auf meinem Teilwissen beruht. Vielleicht kann jemand hier, der mehr über Dateisystemkonzepte weiß, dies bestätigen oder korrigieren. In der Zwischenzeit schlage ich vor, dass Sie diese Antwort nur als theoretisch betrachten und Ihre Lösungen nicht ohne weitere experimentelle Überprüfung darauf basieren.

verwandte Informationen