Sie können dies tun.
ls | zip test.zip [email protected]
Dies geschieht aus der Vorstellung heraus, dass ich 3 Dateien im Verzeichnis habe.
-rw-rw-r-- 1 xxx domain users 6 Jan 7 11:41 test1.txt
-rw-rw-r-- 1 xxx domain users 6 Jan 7 11:41 test2.txt
-rw-rw-r-- 1 xxx domain users 6 Jan 7 11:41 test3.txt
und die Datei selbst, das Ergebnis ist dann
Archive: test.zip
Length Date Time Name
-------- ---- ---- ----
6 01-07-10 11:41 test1.txt
6 01-07-10 11:41 test2.txt
6 01-07-10 11:41 test3.txt
-------- -------
18 3 files
Von der Linux Zip Man-Seite
Wenn die Dateiliste als [email protected] angegeben ist, nimmt zip die Liste der Eingabedateien aus der Standardeingabe.
Sie können eine benannte Pipe verwenden und die Anforderungsausgabe an sie senden, während Sie sie komprimieren.
mkfifo output.txt ; mysql [params and query] > output.txt & zip output.zip -FI output.txt ; rm output.txt
Ich konnte mit der PHP-Antwort nicht umgehen (nicht genügend Arbeitsspeicher bei größeren MySQL-Dumps), und das FIFO funktionierte nicht wie ich wollte, also besteht meine Lösung darin, die Datei im ZIP-Archiv nach dem Ausführen des Dumps umzubenennen, indem ich zipnote (das ist im Zip-Paket von Debian enthalten).
mysql [params and query] | zip -q output.zip -
echo -e "@ -\[email protected]=newname.sql" | zipnote -w output.zip