it-swarm.com.de

"Zip-Warnung: Name stimmt nicht überein" beim Komprimieren eines Verzeichnisses

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

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 Fall archive.Zip existiert nicht, aber ich versuche es zu erstellen.

21
DisplayName

Ihr Befehl sollte lauten:

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 Option -r Für die Rekursion gegenüber dem Shell-Glob "*" dringend empfohlen.

7
Danny Staple

Dieser Fehler kann auch dadurch verursacht werden, dass symbolische Links im Verzeichnisbaum komprimiert werden.

Wenn diese keine korrekten Ziele haben (möglicherweise weil das Verzeichnis von einem anderen Ort verschoben oder 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, indem Sie nicht mehrere Kopien der Datei archivieren), indem Sie die Option -y (Oder --symlinks) Verwenden.

28
Bob Eager

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

Zip -p password -r /Volumes/Storage\ 4/archive.Zip /Volumes/GGZ/faster/mybigfolder/
0
53c

Ich habe diesen Fehler auch in der Vergangenheit aus einem anderen Grund als dem -r Schalter kann nicht reparieren. Was passiert ist, dass ich Dateien basierend auf dem folgenden Bash-Code/der folgenden Bash-Variablen zur Zip hinzugefügt habe

somevar=`ls -1 somedir`

Das Problem ist, dass ls die Dateien nur so auflistet, als ob sie sich im aktuellen Verzeichnis befänden, und deshalb beschwert sich Zip (im Wesentlichen existieren die Dateien für Zip nicht, weil es dazu aufgefordert wird im falschen/aktuellen Verzeichnis suchen).

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

somevar=`ls -1d somedir/*`

Wie Sie sehen können, habe ich das -d Schalter und auch /* am Ende des Verzeichnisnamens und dann wurden die Dateien erfolgreich hinzugefügt.

0
Areeb Soo Yasir