Was ist im Unix-Zip-Programm der Unterschied zwischen den Argumenten - @ und -?

1

Beides nicht - und -@ Lassen Sie einfach Argumente in ersetzen zip mit Sachen durch Standardeingabe geleitet? Was ist der Unterschied?

Raiden Worley
quelle

Antworten:

1

Der Unterschied ist das - wird komprimieren stdin als ob stdin ist selbst die zu komprimierende Datei. -@ liest eine Liste von Dateinamen aus stdin und fügen Sie jede dieser Dateien zum Archiv hinzu. Die Beispiele in die Manpage illustrieren Sie den Unterschied (verwenden Sie das aber bitte nicht -@ Es ist beispielsweise fehlerhaft und schlägt bei allen Namen fehl, die Zeichen enthalten IFS wie Leerzeichen):

Unter Unix kann diese Option in Verbindung mit dem Befehl find (1) verwendet werden. Um beispielsweise alle C-Quelldateien im aktuellen Verzeichnis und dessen Unterverzeichnissen zu archivieren:

find . -name "*.[ch]" -print | zip source -@

und

zip akzeptiert auch einen einzelnen Bindestrich ("-") als Namen einer zu komprimierenden Datei. In diesem Fall wird die Datei aus der Standardeingabe gelesen, sodass zip Eingaben aus einem anderen Programm übernehmen kann. Zum Beispiel:

tar cf - . | zip backup -
Eric Renouf
quelle