Ich versuche, eine Reihe von Dateien in einem Verzeichnis zu komprimieren, sondern auch den Inhalt der komprimierten Dateien auf stdout.Wie gzip eine Datei, während auch komprimierte Inhalte zu stdout
Da ich habe:
09:00 /tmp/file1.txt
10:00 /tmp/file2.txt
11:00 /tmp/file3.txt
Ich bin im Grunde ein gzip -c /tmp/file?.txt > /tmp/compressed.gz
auszuführen suchen, aber ich will auch die Dateien mit Beibehaltung der ursprünglichen Zeitstempel komprimiert werden:
09:00 /tmp/file1.txt.gz
10:00 /tmp/file2.txt.gz
11:00 /tmp/file3.txt.gz
12:00 /tmp/compressed.gz
ist es Jede Möglichkeit, dies mit einem Befehl zu tun, und ohne:
for i in $(ls /tmp/file?.txt)
do
gzip ${i} && cat ${i}.gz >> /tmp/compressed.gz
done
Ich würde l Sie müssen einmal komprimieren und auf die Festplatte schreiben und wollen die Festplatte nicht erneut lesen.
Sie können mit 'gzip .. | in eine Datei schreiben und stdout tee.gz', und Sie können Zeitstempel mit 'touch' einstellen. –
gzip arbeitet mit einer einzigen Eingabedatei, daher müssen Sie etwas wie tar verwenden, um zuerst ein Archiv zu erstellen. Oder benutze einfach zip. – Marichyasana