ディレクトリ内の一連のファイルを圧縮しようとしていますが、圧縮ファイルの内容をstdoutに出力しています。圧縮されたコンテンツをstdoutに出力しながらファイルをgzipにする方法
私が持っていることを考える:
09:00 /tmp/file1.txt
10:00 /tmp/file2.txt
11:00 /tmp/file3.txt
私は基本的にgzip -c /tmp/file?.txt > /tmp/compressed.gz
を実行するために探していますが、私はまた、ファイルは元のタイムスタンプを維持したまま圧縮することにしたい。
09:00 /tmp/file1.txt.gz
10:00 /tmp/file2.txt.gz
11:00 /tmp/file3.txt.gz
12:00 /tmp/compressed.gz
があります1つのコマンドでこれを行う方法はありません。
for i in $(ls /tmp/file?.txt)
do
gzip ${i} && cat ${i}.gz >> /tmp/compressed.gz
done
私は一度圧縮してディスクに書き込むことができます。また、ディスクをもう一度読み込んで再読み込みしたくない場合もあります。
ファイルとstdoutに 'gzip .. 'で書き込むことができます。 tee file.gz'を実行し、 'touch 'でタイムスタンプを設定することができます。 –
gzipは1つの入力ファイルで動作するので、最初にアーカイブを作成するにはtarのようなものを使う必要があります。または単にzipを使用してください。 – Marichyasana