ubuntuusers.de

7z

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

noisefloor Team-Icon

Anmeldungsdatum:
6. Juni 2006

Beiträge: 29567

Hallo,

ich finde die Wortwahl "Rezeptdateien" unglücklich, weil irreführend. Basierend auf dem Beispiel vermutet ich mal, dass die Word-Dateien im Beispielen (Koch- und Back-) Rezepte enthalten. Das ist für den Artikel aber total irrelevant. Besser und allgemeiner wäre, wenn du einfach bezogen auf die Bespiele sagst, dass alle Dateien mit der Dateiendung .doc für das Archiv berücksichtigt werden.

Abgesehen davon wäre es vielleicht schön, wenn auch nicht zwingend, wenn du in den Beispielen kein altes / veraltetes Dateiformat von einer Windowsanwendung nehmen würdest, sondern so was wie .txt. oder .odt oder so.

Inhaltlich klingt das alles plausibel, ist aber halt schwer nachzuvollziehen, wenn man die Option -u selber noch nicht genutzt hat.

Gruß, noisefloor

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

noisefloor schrieb:

Hallo,

ich finde die Wortwahl "Rezeptdateien" unglücklich, weil irreführend. Basierend auf dem Beispiel vermutet ich mal, dass die Word-Dateien im Beispielen (Koch- und Back-) Rezepte enthalten. Das ist für den Artikel aber total irrelevant. Besser und allgemeiner wäre, wenn du einfach bezogen auf die Bespiele sagst, dass alle Dateien mit der Dateiendung .doc für das Archiv berücksichtigt werden.

Abgesehen davon wäre es vielleicht schön, wenn auch nicht zwingend, wenn du in den Beispielen kein altes / veraltetes Dateiformat von einer Windowsanwendung nehmen würdest, sondern so was wie .txt. oder .odt oder so.

Stimmt und erledigt. Da hatte ich mich wohl zu sehr von dem eingangs gebrachten Beispiel mit kirschkuchenrezept.doc, das ich so schon vorgefunden und in meinen Beispielen wieder aufgegriffen habe, inspirieren lassen. Die Erweiterung habe ich gleich mit vereinheitlicht: kirschkuchenrezept.odt.

Bei der Gelegenheit ist mir an den Beispielen noch aufgefallen, dass ich

  1. im zweiten Beispiel noch einen Trick gefunden habe, wie man die Archivbereinigung auch auf Dateien mit einer bestimmten Erweiterung eingrenzen kann (das will ich noch ergänzen)

  2. das dritte Beispiel auch etwas modifizieren könnte: u -ux0y0z0w0 müsste identisch sein mit dem etwas einfacheren d -uq1r2 – aber das prüfe ich noch.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

wxpte schrieb:

Bei der Gelegenheit ist mir an den Beispielen noch aufgefallen, dass ich

  1. im zweiten Beispiel noch einen Trick gefunden habe, wie man die Archivbereinigung auch auf Dateien mit einer bestimmten Erweiterung eingrenzen kann (das will ich noch ergänzen)

  2. das dritte Beispiel auch etwas modifizieren könnte: u -ux0y0z0w0 müsste identisch sein mit dem etwas einfacheren d -uq1r2 – aber das prüfe ich noch.

Der Kram wäre jetzt auch erledigt. Dabei habe ich festgestellt, dass das dritte Beispiel sogar falsch war, und richtigerweise d -up0r2 heißen muss: nur, wenn alle Status außer r mit der Aktion 0 verknüpft sind, werden wirklich nur neue Dateien, die auf den Wildcard matchen, in die neue Archivdatei gesteckt.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9579

Wohnort: Münster

Einige Details überarbeitet.

Unklar:

  • Zur Option -u:

    • "-u[-]<Aktionen>[\!{neue_Archivdatei}]" ist möglicherweise falsch formatiert.

    • „Updateoption“ erscheint mir als schlecht gewählter Begriff. Ich habe jedenfalls nicht verstanden, was das soll. Gibt es eine andere Bezeichnung dafür, vielleicht „zusätzliche Optionen“?

  • Zur Option -v:

Größenangaben werden mit einer Einheit angegeben: b=Byte, k=Kilobyte, m=Megabyte, g=Gigabyte.

Muss das nicht Kibibyte, Mebibyte, Gibibyte lauten? Sonst geben die folgenden Beispiele keinen Sinn.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

kB schrieb:

Einige Details überarbeitet.

Unklar:

  • Zur Option -u:

    • "-u[-]<Aktionen>[\!{neue_Archivdatei}]" ist möglicherweise falsch formatiert.

Die Syntax habe ich an die Beschreibung auf der Seite https://documentation.help/7-Zip/update1.htm angelehnt, mit dieser Anleitung habe ich mir auch den Umgang mit dem Schalter -u erst angeeignet. Aber die Original-Manpage weist die Syntax wie folgt aus:

-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]
              Update options

Die geschweiften Klammern könnte man also möglicherweise weglassen, und die Status wie in der Manpage aufzählen. Anders verhält es sich mit dem Backslash vor dem Ausrufezeichen: lässt man ihn weg, wird das Ausrufezeichen in der shell in der Sonderfunktion interpretiert, und der Befehl scheitert. Insofern halte ich die Manpage für ein wenig irreführend, und seltsamerweise habe ich auch im Internet keine Anleitung gefunden, die auf diesen Umstand eingeht.

  • „Updateoption“ erscheint mir als schlecht gewählter Begriff. Ich habe jedenfalls nicht verstanden, was das soll. Gibt es eine andere Bezeichnung dafür, vielleicht „zusätzliche Optionen“?

Die Bezeichnung »zusätzliche Optionen« sagt mir wiederum nichts: ich weiß nicht, was daran zusätzlich sein soll. Mit dem Schalter -u kann man eben die Aktionen, welche durch die drei Kommandos a, d und u ausgeführt werden, beliebig modifizieren (theoretisch könnte man mit dem Kommando

7z a -ux1z1 ...

dasselbe wie mit dem Kommando

7z u ... # ohne -u

machen). In der Manpage steht halt auch »Update options«, und mir fällt nichts besseres ein*.

  • Zur Option -v:

Größenangaben werden mit einer Einheit angegeben: b=Byte, k=Kilobyte, m=Megabyte, g=Gigabyte.

Muss das nicht Kibibyte, Mebibyte, Gibibyte lauten? Sonst geben die folgenden Beispiele keinen Sinn.

Ja, kommt hin. Mit dem Schalter -v hatte ich mich bei der Überarbeitung nicht näher beschäftigt, muss ich zugeben. Mir ging es vor allem um die genauere Erklärung des Schalters -u, weil dieser in der Manpage nur oberflächlich behandelt wird.

_ _ _

*) Update, 20:19 Uhr: gerade ist mir doch noch etwas eingefallen. Wie wäre es mit
»Schalter, mit dem die Kommandos a, d und u modifiziert werden können. Näheres dazu unten.«

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9579

Wohnort: Münster

wxpte schrieb:

Zunächst einmal vielen Dank für die ausführliche Antwort, die einige Verständnisschwierigkeiten und Irrtümer auszumerzen hilft.

[…] Die Syntax habe ich an die Beschreibung auf der Seite https://documentation.help/7-Zip/update1.htm angelehnt

Eine Notation aus der Hölle, beschrieben mit ungeeigneten semantischen Begriffen, noch dazu in sich widersprüchlich und unvollständig.

mit dieser Anleitung habe ich mir auch den Umgang mit dem Schalter -u erst angeeignet.

Dafür gebührt Dir meine Anerkennung. Allerdings sehe ich einige Diskrepanzen zwischen dieser Seite und dem momentanen Text in der hiesigen Baustelle. Da benötigt es noch Arbeit vor der Freigabe ins Wiki.

Aber die Original-Manpage weist die Syntax wie folgt aus:

-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName]
              Update options

Schon besser. Ob für das Wiki tauglich, darüber denke ich noch nach.

Die geschweiften Klammern könnte man also möglicherweise weglassen

Auf jeden Fall.

und die Status wie in der Manpage aufzählen.

Das lateinische "Status" ist hier wohl eine schlechte Übersetzung des englischen "state". Möglicherweise besser geeignet:

  • Zustand

  • Bedingung

  • Situation

Anders verhält es sich mit dem Backslash vor dem Ausrufezeichen: lässt man ihn weg, wird das Ausrufezeichen in der shell in der Sonderfunktion interpretiert, und der Befehl scheitert. Insofern halte ich die Manpage für ein wenig irreführend, und seltsamerweise habe ich auch im Internet keine Anleitung gefunden, die auf diesen Umstand eingeht.

Das Ausrufezeichen ist für die Shell ein Sonderzeichen und muss regelmäßig geschützt werden, wenn man es (wie hier) als Literal meint. Es müsste allerdings auch eine Quotierung mit Anführungszeichen funktionieren, die besser lesbar ist.
Beispielsweise: -u'p0r2!/home/peter/neue_Rezepte.7z'

Kannst Du das bitte prüfen?

[…] Mit dem Schalter -u kann man eben die Aktionen, welche durch die drei Kommandos a, d und u ausgeführt werden, beliebig modifizieren […]

Dann sollte man das auch so ins Wiki schreiben: „Der Schalter -u modifiziert die Arbeitsweise der Kommandos a, d und u.“

  • Zur Option -v:

Größenangaben werden mit einer Einheit angegeben: b=Byte, k=Kilobyte, m=Megabyte, g=Gigabyte.

Muss das nicht Kibibyte, Mebibyte, Gibibyte lauten? Sonst geben die folgenden Beispiele keinen Sinn.

Ja, kommt hin.

OK. Ich arbeite die bisherigen Erkenntnisse ein und melde mich dann wieder.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

kB schrieb:

Das lateinische "Status" ist hier wohl eine schlechte Übersetzung des englischen "state". Möglicherweise besser geeignet:

  • Zustand

  • Bedingung

  • Situation

Zwar sehe ich jetzt nicht, warum der lateinische Ausdruck weniger passend sein sollte. Aber wenn wir einen deutschen Ausdruck benötigen, dann wäre ich für »Eigenschaft«: bei »p« direkt bezogen auf das Muster, bei den übrigen bezogen auf die Dateien, die durch das Muster repräsentiert werden.

kB schrieb:

Das Ausrufezeichen ist für die Shell ein Sonderzeichen und muss regelmäßig geschützt werden, wenn man es (wie hier) als Literal meint. Es müsste allerdings auch eine Quotierung mit Anführungszeichen funktionieren, die besser lesbar ist.
Beispielsweise: -u'p0r2!/home/peter/neue_Rezepte.7z'

Kannst Du das bitte prüfen?

Ja, das funktioniert auch mit Single Quotes genauso gut; und zwar auch dann, wenn man den einleitenden Quote erst unmittelbar vor das Ausrufezeichen setzt. Dabei sollte man natürlich auch im Hinterkopf behalten, dass dann auch andere Sonderzeichen (z. B. die Tilde als Platzhalter für das Home-Verzeichnis) nicht ausgewertet werden.

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1126

Vorschlag zu den Tabellen 3 bis 5:

  1. grundsätzlich Tabellenüberschriften linksbündig beschleunigt den Lesefluss je nach Auflösung und Browser-Fenstergröße

  2. In Tabelle 3 und 4 würde ich die 1. Spalte nicht Code nennen sondern Situation oder Bedingung bzw. Aktion und die 2. Spalte würde ich bei beiden Tabellen Beschreibung nennen.

  3. durch die unten dargestellte farbige Ausführung ist ggf. ein schnellerer Bezug zwischen Tabelle 4 und 5 gegeben

  4. den Text zwischen Tabelle 4 und 5 würde ich hinter Tabelle 5 verlegen, damit die Tabellen 3, 4 und 5 kompakt beieinander stehen, analog zu https://documentation.help/7-Zip/update1.htm.

Entscheidet aber bitte selber.

Anmerkung: hier im Post wird die Tabelle anders dargestellt als im Sandkasten ... am Besten mal den Code im Sandkasten betrachten.

Gruss sh

Tabelle 4: Mögliche Aktionen
Aktion Beschreibung
0 Datei wird verworfen bzw. nicht in die neue Archivdatei übernommen
1 Bestehende Datei im Archiv wird beibehalten bzw. in die neue Archivdatei übernommen
2 Archivdatei wird durch die nicht archivierte Datei ersetzt (ggf. nur in der neuen Archivdatei)
3 In der Archivdatei werden sogenannte Anti-Dateien erzeugt, die beim Extrahieren dafür sorgen, dass im Zielverzeichnis vorhandene Dateien dieses Namens gelöscht werden (nur mit dem 7z-Format unterstützt)

Die nachfolgende Tabelle beschreibt, welche Arbeitsweisen für die Kommandos a, d und u ohne explizite Verwendung des Schalters -u gelten.

⚓︎

Tabelle 5: Vorgaben für ARBEITSWEISEN bei den Kommandos a, d und u
Kommando / Aktion zu Bedingung p q r x y z w
d (delete) 1 0 0 0 0 0 0
a (add) 1 1 2 2 2 2 2
u (update) 1 1 2 1 2 1 2

Edit: Code für den Sandkasten als Text-Datei angehängt.

code_fuer_sandkasten.txt (1.5 KiB)
Download code_fuer_sandkasten.txt

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9579

Wohnort: Münster

sh4711 schrieb:

Vorschlag zu den Tabellen 3 bis 5:

  1. grundsätzlich Tabellenüberschriften linksbündig beschleunigt den Lesefluss je nach Auflösung und Browser-Fenstergröße

Mag für manche Leser zutreffen, ist aber sicherlich nicht allgemein gültig.

Andererseits sind Tabellen stets nicht als Fließtext gedacht, den man schnell durchlesen mag. Sie sind vielmehr Werkzeuge zum Nachschlagen bestimmter Informationen unter Schlüsselwerten, meist in der ersten Spalte. Hierfür ist wichtig, Tabellen im gesamten Text schnell zu finden und hierfür sind zentrierte Überschriften ein gutes Hilfsmittel.

2. In Tabelle 3 und 4 würde ich die 1. Spalte nicht Code nennen sondern Situation oder Bedingung bzw. Aktion und die 2. Spalte würde ich bei beiden Tabellen Beschreibung nennen.

Begriffe wie p, q, r usw. sind keine Situation und 1, 2, 3 sind keine Aktion; beides sind lediglich willkürlich gewählte Kodierungen für solche oder jene. Die Tabellen sollen die leichte Übersetzung dieser Codes auf die damit gemeinte Situation bzw. Aktion ermöglichen und dafür ist zweckmäßig, die Spalten eben mit Code und Situation bzw. Aktion zu betiteln.

3. durch die unten dargestellte farbige Ausführung ist ggf. ein schnellerer Bezug zwischen Tabelle 4 und 5 gegeben

Kosmetik ist möglich und mag als Ergänzung sinnvoll sein, ist aber kein Ersatz für zutreffende und verständliche verbale Beschreibung; um letztere wird noch gerungen. Bis dahin ist Kosmetik nachrangig.

4. den Text zwischen Tabelle 4 und 5 würde ich hinter Tabelle 5 verlegen, damit die Tabellen 3, 4 und 5 kompakt beieinander stehen, analog zu https://documentation.help/7-Zip/update1.htm.

Diese Internet-Seite erscheint mir nicht als geeignetes Vorbild für das UbuntuUsers-de-Wiki. Ich denke, wir sollten besser Verständlichkeit und Korrektheit anstreben als uns eng an bestehende schlechte Beschreibungen anzulehnen.

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1126

kB schrieb:

... Mag für manche Leser zutreffen, ist aber sicherlich nicht allgemein gültig.

OK, entscheidet ihr das bitte.

2. In Tabelle 3 und 4 würde ich die 1. Spalte nicht Code nennen sondern Situation oder Bedingung bzw. Aktion und die 2. Spalte würde ich bei beiden Tabellen Beschreibung nennen.

Begriffe wie p, q, r usw. sind keine Situation und 1, 2, 3 sind keine Aktion; beides sind lediglich willkürlich gewählte Kodierungen für solche oder jene. Die Tabellen sollen die leichte Übersetzung dieser Codes auf die damit gemeinte Situation bzw. Aktion ermöglichen und dafür ist zweckmäßig, die Spalten eben mit Code und Situation bzw. Aktion zu betiteln.

Sicher handelt es sich um Codes aber im Sinne einer zutreffenden und verständlichen verbalen Beschreibung ist es ggf. besser jeder Art Code einen Namen zu geben. 0, 1, 2, 3 sind Codes für Aktionen und p, q, r usw. sind Codes für Situatione/Bedingungen/Eigenschaften oder wie man es auch immer nennen mag. Selbst im Programmcode wird sich die Abfrage bei Aktionen und bei Situationen sicher in der Namensgebung der Variablen unterscheiden. Aber entscheidet ihr das bitte.

Kosmetik ist möglich ....

OK.

Diese Internet-Seite erscheint mir nicht als geeignetes Vorbild für das UbuntuUsers-de-Wiki. Ich denke, wir sollten besser Verständlichkeit und Korrektheit anstreben als uns eng an bestehende schlechte Beschreibungen anzulehnen.

Das mag sein. Um die Tabelle 5 zu verstehen muss man jedoch Tabelle 3 und 4 im Blick haben und wenn man aufgrund von trennendem Fließtext zwischen den Tabellen hin und her scrollen muss ist das wahrscheinlich nicht zielführend. Aber entscheidet ihr das bitte.

Gruß sh

sh4711

Anmeldungsdatum:
13. Februar 2011

Beiträge: 1126

Zu 2.
Wir unterscheiden hier im Artikel auch zwischen Kommando und Schalter.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

sh4711 schrieb:

Das mag sein. Um die Tabelle 5 zu verstehen muss man jedoch Tabelle 3 und 4 im Blick haben und wenn man aufgrund von trennendem Fließtext zwischen den Tabellen hin und her scrollen muss ist das wahrscheinlich nicht zielführend. Aber entscheidet ihr das bitte.

Das ist ein guter Punkt. Besonders die Codebuchstaben für die »Situationen« sind nicht so einprägsam und logisch, dass man sie sofort auswendig weiß. Wenn man also einen Befehl zur Archivierung plant, ist es sinnvoll, die Ausgangslage mit im Blick zu haben, um zu entscheiden, bei welchen Situationen modifiziert werden muss.

Was mir auch noch aufgefallen ist:
Durch den Umbau des Schalters in Tabelle 2 auf

-u'ARBEITSWEISEN' 

ist die Möglichkeit, das Ergebnis des Kommandos in eine neue Archivdatei zu stellen, ein wenig untergegangen, so dass die auf Tabelle 4 folgenden zwei Sätze sowie das dritte Beispiel jetzt im luftleeren Raum stehen. Da müssten die einleitenden Sätze vor Tabelle 3 noch ein wenig ergänzt werden. Vorschlag:

Mit der Syntax

7z Kommando -u- -u'ARBEITSWEISEN!/Pfad/zur/neuen/Archivdatei' /Pfad/zur/bestehenden/Archivdatei [Dateimuster] 

kann das Ergebnis des Programmaufrufs auch in eine neue Archivdatei ausgelagert werden. Der Schalter -u- sorgt dafür, dass die bereits vorhandene Archivdatei unverändert bleibt. Außerdem muss das Ausrufezeichen durch Single Quotes oder einen vorangestellten umgekehrten Schrägstrich geschützt werden, da es ansonsten durch die Shell interpretiert würde.
_ _ _
Die beiden Sätze unterhalb der Tabelle 4 könnten dann entfallen.

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Die Neuanordnung der Beispiele ist gut gelungen, das sieht jetzt klar und übersichtlich aus. 👍

Mit einigen anderen Passagen bin ich allerdings noch nicht so glücklich:

Außerdem kann man über die Zeichenfolge ARBEITSWEISEN die vorgegebene situationsabhängigen Arbeitsweisen löschen und einen neuen zusätzlichen Archivnamen definieren.

und

Vorgaben für das jeweilige Kommando lt. Tabelle 5 löschen.

Wieso löschen? Der Schalter -u- legt fest, dass das Kommando nicht auf die vorhandene Archivdatei angewendet wird, wenn gleichzeitig ein weiterer Schalter gesetzt ist, mit dem eine neue Archivdatei erzeugt wird. Wenn aber ein Kommando gar nicht erst angewendet wird, dann brauchen auch keine Vorgaben gelöscht zu werden.

Dieser Code muss an erster Stelle stehen.

Das trifft in dieser Form nicht zu: innerhalb eines Schalters muss der Code vielmehr alleinstehend sein. Anweisungen für die neue Archivdatei und Anweisungen für die vorhandene Archivdatei kann man nicht in einem Schalter miteinander kombinieren.

Der Satz

Für jede Datei im Archiv ARCHIVNAME und jede auf MUSTER passende Datei im Dateisystem wird dann die Situation lt. Tabelle 3 hinsichtlich Existenz an beiden Stellen, Zeitstempel und Größe ermittelt und die Datei dann gemäß Tabelle 4 behandelt.

ist mir zu kompliziert. Obwohl ich mich eine ganze Weile mit dem Schalter beschäftigt habe und mir einbilde, die wesentlichen Eigenschaften verstanden zu haben, musste ich diesen Satz fünf Mal lesen, um einigermaßen zu durchschauen, worauf du damit hinaus willst.

Zudem hält sich der Informationsgehalt dieser Aussage in Grenzen: das ist doch weiter oben schon ausreichend beschrieben, und der Rest erschließt sich aus dem weiteren Kontext von selbst.

karzer Team-Icon

Wikiteam
Avatar von karzer

Anmeldungsdatum:
10. April 2022

Beiträge: 1499

Wohnort: Bad Oeynhausen

Im Verzeichnis gelöschte Dateien werden auch aus dem Archiv entfernt. Die Option r0 wird gesetzt, damit dem Archiv keine Dateien mit anderen Erweiterungen hinzugefügt werden, Dateien mit der Erweiterung .odt werden dann allerdings auch nicht hinzugefügt.

Sollte das nicht p0 sein, oder habe ich etwas Grundlegendes nicht verstanden?

wxpte

Anmeldungsdatum:
20. Januar 2007

Beiträge: 1388

Das ist schon richtig so, wie es da steht. Code r steht für die Situation, dass die Datei zwar im Verzeichnis außerhalb des Archivs vorhanden ist, im Archiv selbst aber nicht. Die Aktion 0 sorgt dann dafür, dass das auch so bleibt.

Aber die Situation, die durch den Code p repräsentiert wird, ist auch mit Abstand am schwersten zu verstehen, besonders, wenn Wildcards im Spiel sind. Es bedeutet nämlich: das Muster, das dem Programmaufruf mitgegeben wird, wird zunächst von der Shell ausgewertet und auf das Verzeichnis (außerhalb des Archivs) angewendet. Erst im zweiten Schritt wird geprüft, ob die Datei im Archiv auf das von der Shell erzeugte Muster passt. Ist dies nicht der Fall, fliegt die Datei aus dem Archiv, sobald p mit der Aktion 0 verknüpft ist.