"Zip warning: name not matched" beim Komprimieren eines Verzeichnisses


19

Ich habe einen Ordner mit ca. 180 GB, den ich wie folgt komprimieren muss:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

Aber es heißt:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

Wie mache ich das? In einem anderen Punkt archive.zipgibt es nicht, aber ich versuche, es zu erstellen.


Versuchen Siezip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Antworten:


7

Ihr Befehl sollte sein:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

Die Handbuchseite ( man zip) zeigt, dass Sie Folgendes haben sollten:

zip <options> <archive> <inpath...>

Außerdem wird die -rOption für die Rekursion über das Shell-Glob "*" dringend empfohlen.


Eine andere verwandte Falle ist ein einfacher Tippfehler (z. B. wenn Sie den Befehl von einem Skript in ein anderes kopiert haben). Beispielsweise geben winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*Sie statt versehentlich ein winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*. Beachten Sie die extra Output.zip... leicht gemacht!
AlainD

23

Dieser Fehler kann auch durch die Komprimierung symbolischer Links im Verzeichnisbaum verursacht werden.

Wenn diese nicht die richtigen Ziele haben (möglicherweise, weil das Verzeichnis verschoben oder von einem anderen Ort kopiert wurde), versucht zip , dem Symlink zu folgen, um die Zieldatei zu archivieren.

Sie können dies vermeiden (und auch den gewünschten Effekt erzielen, dh nicht mehrere Kopien der Datei archivieren), indem Sie die Option -y(oder --symlinks) verwenden.


0

Verwenden Sie das rekursive Flag ( -r) anstelle von glob ( *), um die zu komprimierenden Dateien abzugleichen. Geben Sie außerdem zuerst den Archivnamen und dann die Liste der Dateien an:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

Ich habe diesen Fehler in der Vergangenheit auch aus einem anderen Grund erhalten, den der -rSwitch nicht beheben kann. Was passiert ist, ist, dass ich Dateien mit dem folgenden Bash-Code / der folgenden Variablen zum Zip hinzufüge

somevar=`ls -1 somedir`

Das Problem ist, dass lsnur die Dateien so aufgelistet werden, als ob sie sich im aktuellen Verzeichnis befänden, und aus diesem Grund zipwird eine Beschwerde eingereicht (im Wesentlichen sind die Dateien nicht für das ZIP-Format vorhanden, da angegeben wird, dass sie im falschen / aktuellen Verzeichnis suchen sollen).

Wenn dies Ihr Problem ist, können Sie es folgendermaßen beheben:

somevar=`ls -1d somedir/*`

Wie Sie sehen, habe ich den -dSchalter und auch /*am Ende des Verzeichnisnamens verwendet und dann wurden die Dateien erfolgreich hinzugefügt.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.