GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie geben Sie Dateinamen in einer ZIP-Datei an, wenn Sie sie in der Befehlszeile aus einer Pipe erstellen?

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

Linux
  1. Wie kann man von der Befehlszeile aus stummschalten?

  2. Wie setze ich die Jenkins-Sicherheitseinstellungen über die Befehlszeile zurück?

  3. Wie installiere ich ein Skript, das überall von der Befehlszeile aus ausgeführt werden kann?

  4. Wie greife ich über die Befehlszeile auf Unix Domain Sockets zu?

  5. So leiten Sie Text von der Befehlszeile in die Zwischenablage

So suchen Sie nach Dateien über die Linux-Befehlszeile

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

Wie kann ich von der Befehlszeile aus feststellen, auf welcher Version von Os X ich mich befinde?

Wie erstelle ich ein Meldungsfeld von der Befehlszeile aus?

Wie kann ich PHP-Code von der Kommandozeile aus ausführen?

Wie lösche ich den Inhalt einer Datei über die Befehlszeile?