ubuntuusers.de

7z

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels 7z.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9377

Wohnort: Münster

wxpte schrieb:

Kommen wir noch zu dem Punkt, auf den du bisher nicht eingegangen bist:

wxpte schrieb:

Außerdem noch: Situationscode p im Dateisystem nicht relevant? Meines Erachtens ist das sogar sehr relevant, da die Shell die Wildcards im Dateisystem erst auflöst und daraus ein Muster zur Prüfung der im Archiv befindlichen Dateien erzeugt.

Das wäre dann eine Wechselwirkung zwischen Shell und 7z. So etwas ist natürlich für die Praxis und damit für den Artikel relevant, aber nicht in der Tabelle, die ja nur die Arbeitsweise von 7z beschreiben soll.

Wenn es solche Effekte gibt, würde ich für diese Befehle

7z u -up0 Archiv_fuer_Abgleich.7z *.abc
7z u -up0 Archiv_fuer_Abgleich.7z '*.abc'
7z u Archiv_fuer_Abgleich.7z *.abc
7z u Archiv_fuer_Abgleich.7z '*.abc'

bei identischer Ausgangslage unterschiedliche Ergebnisse erwarten.

Mit dem nachfolgenden Beispiel […]

Ein durchaus interessantes Beispiel! Ich werde es aber heute nicht mehr verstehen und später darüber nachdenken.

In Bezug auf den Situationscode p ist das Dateisystem daher relevant und die gegenteilige Aussage in der Tabelle unzutreffend.

Wenn Du recht hast, was ich zum gegenwärtigen Zeitpunkt weder bestreiten noch bestätigen will, wäre das ein weiterer Punkt, in dem die Dokumentation irrt.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

kB schrieb:

Wenn es solche Effekte gibt, würde ich für diese Befehle

7z u -up0 Archiv_fuer_Abgleich.7z *.abc
7z u -up0 Archiv_fuer_Abgleich.7z '*.abc'
7z u Archiv_fuer_Abgleich.7z *.abc
7z u Archiv_fuer_Abgleich.7z '*.abc'

bei identischer Ausgangslage unterschiedliche Ergebnisse erwarten.

So ist es. Dann wollen wir mal:

Ausgangslage ist ein Archiv, das alle Dateien (außer die Archivdatei selbst) des Dateiverzeichnisses enthält:

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:47:26 ....A           19               Lasagne.xyz
2024-06-30 09:45:43 ....A           19               Pizza.abc
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 09:45:56 ....A           19               Tandoori.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:47:26                 95           35  5 files

Nach dem Erstellen des Archivs wurde die Datei Tandoori.abc im Verzeichnis gelöscht und die Datei Pizza.abc geändert.

Fall 1:

7z u -up0 Archiv_fuer_Abgleich.7z *.abc

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 19:22:17 ....A           34           38  Pizza.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 19:22:17                 72           73  3 files

Fall 2:

7z u -up0 Archiv_fuer_Abgleich.7z '*.abc'

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 09:45:56 ....A           19               Tandoori.abc
2024-06-30 19:22:17 ....A           34           38  Pizza.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 19:22:17                 91           73  4 files

Fall 3:

7z u Archiv_fuer_Abgleich.7z *.abc

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:47:26 ....A           19               Lasagne.xyz
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 09:45:56 ....A           19               Tandoori.abc
2024-06-30 19:22:17 ....A           34           38  Pizza.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 19:22:17                110           73  5 files

Fall 4:

7z u Archiv_fuer_Abgleich.7z '*.abc'

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:47:26 ....A           19               Lasagne.xyz
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 09:45:56 ....A           19               Tandoori.abc
2024-06-30 19:22:17 ....A           34           38  Pizza.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 19:22:17                110           73  5 files

Zwar unterscheiden sich Fall 3 und Fall 4 hier nicht, das liegt aber nur daran, dass die Vorgabe jetzt p1 lautet. Anders sieht die Sache wieder aus, wenn man dann noch ein q0 hinzunimmt:

Fall 3a:

7z u -uq0 Archiv_fuer_Abgleich.7z *.abc

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:47:26 ....A           19               Lasagne.xyz
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 09:45:56 ....A           19               Tandoori.abc
2024-06-30 19:22:17 ....A           34           38  Pizza.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 19:22:17                110           73  5 files

Fall 4a:

7z u -uq0 Archiv_fuer_Abgleich.7z '*.abc'

7z l Archiv_fuer_Abgleich.7z | sed -n '19,$p'
   Date      Time    Attr         Size   Compressed  Name
------------------- ----- ------------ ------------  ------------------------
2024-06-30 09:45:56 ....A           19           35  Lasagne.abc
2024-06-30 09:47:26 ....A           19               Lasagne.xyz
2024-06-30 09:45:43 ....A           19               Spaghetti.abc
2024-06-30 19:22:17 ....A           34           38  Pizza.abc
------------------- ----- ------------ ------------  ------------------------
2024-06-30 19:22:17                 91           73  4 files

Im Fall 4a sorgt q0 dann dafür, dass die nicht mehr im Verzeichnis vorhandene Datei auch tatsächlich entfernt wird, weil die Shell das Muster nicht mehr interpretiert. Das hatte auch für mich gerade einen Lerneffekt: da könnte man den Umweg über die while-Schleife in den Beispielen auch direkt über Quoting lösen.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Zweiter Anlauf:

Der Begriff »ignore« war wohl wirklich der blödeste, der den Verfassern der Dokumentation einfallen konnte. Er hat seine Berechtigung, aber um ihn auf Anhieb zu verstehen, muss man schon sehr, sehr technikaffin sein.

Der dahinterstehende Vorgang, so wie ich ihn jetzt verstanden habe, ist folgender:

Das Programm 7z hat zwei Datenquellen zur Verfügung, aus denen heraus eine Archivdatei erstellt wird:

  1. das Dateisystem, in denen die Originaldateien liegen

  2. gegebenenfalls eine vorhandene Archivdatei, die in der Befehlszeile mit ARCHIVNAME angegeben werden muss.

Ist noch keine Archivdatei vorhanden, wird diese mit ARCHIVNAME angelegt. Im folgnden gehe ich aber nur auf den Fall ein, dass die Archivdatei schon besteht.

Bei der Bearbeitung entnimmt das Programm die Dateien aus diesen beiden Datenquellen und schreibt daraus eine neue Archivdatei. Das kann eine Archivdatei sein, die parallel dazu angelegt wird, das kann aber auch eine zur vorhandenen Archivdatei gleichnamige sein, welche die alte Datei damit überschreibt. Aufgrund dieser Vorüberlegungen ergibt sich für die Aktionscodes nun folgendes:

  1. Aktionscode 2 entnimmt die betroffenen Dateien aus dem Dateisystem und schreibt daraus die neue Archivdatei.

  2. Aktionscode 1 entnimmt die betroffenen Dateien aus der vorhandenen Archivdatei und schreibt daraus die neue Archivdatei

  3. Aktionscode 0 berücksichtigt keine der beiden Datenquellen und schreibt die neue Archivdatei ohne die betroffenen Dateien

Wenn die vorhandene Archivdatei mit der gleichnamigen neuen Archivdatei überschrieben wird, dann sind folgerichtig die von Aktionscode 0 betroffenen Dateien nach dem Bearbeitungsvorgang nicht (mehr) vorhanden.

Den unter 3. beschriebenen Vorgang kann man sicherlich auch als »ignorieren« bezeichnen. Jedoch wird der normale Anwender auf das Ergebnis schauen, und entsetzt fragen: »Wieso sind die Dateien denn jetzt weg?! Da steht doch ›ignorieren‹!«

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

wxpte schrieb:

Jedoch wird der normale Anwender auf das Ergebnis schauen, und entsetzt fragen: »Wieso sind die Dateien denn jetzt weg?! Da steht doch ›ignorieren‹!«

Ich habe das jetzt etwas ausführlicher formuliert, damit auch ohne technisches Spezialwissen verständlich wird, was dieser Code effektiv macht.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Den Vorschlag zur optischen Gestaltung habe ich aufgegriffen und umgesetzt. Dabei habe ich allerdings die Farben etwas anders gewählt, und auf grau ganz verzichtet, weil

  • grau und weiß bei dem außerdem verwendeten Zebra-Format kaum zu unterscheiden sind

  • der Code 3 in Tabelle 5 nicht vorkommt und daher auch nicht nochmals hervorgehoben werden muss.

Bitte lest den Artikel nochmals Korrektur, und falls keine weiteren Einwände mehr kommen, sollte er auch zurück ins aktive Wiki gestellt werden.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Drei mal zwei Tage.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Immer noch keine Reaktion.

@ alle Mitglieder des Wiki-Teams: gibt es noch irgendeinen Grund, diesen Artikel weiterhin in der Baustelle zu halten?

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Ab morgen werde ich mich bis zum 29.07. nicht einloggen können. Es wäre aber gut, wenn sich in der Zwischenzeit noch irgendjemand dazu aufraffen könnte, wenigstens in ein oder zwei Sätzen kurz darzustellen, warum es hier nicht mehr weitergeht bzw. was diesem Artikel für eine Verschiebung ins aktive Wiki noch fehlt.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

So, es reicht. Ein ganzer Monat ist jetzt ohne jegliche Reaktion – trotz wiederholter Anfrage – verstrichen, und ich habe es satt, hier weiterhin um Feedback zu betteln. Das ist unwürdig!

Daher ziehe ich mich nun komplett aus der weiteren Bearbeitung dieses Artikels zurück.

Wiki hat geschrieben:

Und das Schöne ist: An diesem Wiki kann jede/r mitarbeiten! Ob einfache Rechtschreibkorrekturen, Ideen für eine bessere Struktur oder neue Artikel – jede Art der Beteiligung ist ausdrücklich erwünscht.

Lächerlich!

Wikiteam hat geschrieben:

Die Aufgabe eines Wiki-Moderators besteht nicht in erster Linie darin, selbst Artikel zu schreiben. Wir

  • inspirieren Autoren, die Artikel bestmöglich auszuarbeiten.

  • verfolgen die Beiträge im Wiki-Bereich des Forums, um Verbesserungsvorschläge und Anregungen zu bekommen.

Soso. Aber damit zu beginnen, und diese Aufgabe dann nicht zu Ende zu führen, demotiviert jeden Autoren über kurz oder lang.

karzer Team-Icon

Wikiteam
Avatar von karzer

Anmeldungsdatum:
10. April 2022

Beiträge: 1479

Wohnort: Bad Oeynhausen

Hallo wxpte,

die widrigen Umstände tun mir Leid, ich war der Meinung kB bekümmere sich noch. Persönlich finde ich die Ergänzung sinnvoll und spannend, und da ich keinen Grund mehr sehe, sie weiter zu blockieren, wurde sie soeben in das Wiki verschoben. Ich hoffe, das hält dich langfristig nicht davon ab, das Wiki durch Deine Beiträge zu bereichern. Wir bitten um Verständnis, wenn im Wiki nicht immer alles glatt läuft, da das Wikiteam nun einmal seine Augen nicht überall haben kann und wir mit anhaltenden Rekrutierungs-Schwierigkeiten zu kämpfen haben.

Antworten |