Напрямую сжать стандартный вывод

Может кто-нибудь сказать мне, возможно ли напрямую сжать стандартный вывод?

Я хотел бы сделать это за один шаг, не создавая временный файл files.txt ...

Пример:

cat file* > files.txt
tar -czf files.tar files.txt
rm files.txt

Возможно ли это?

1
задан 8 November 2012 в 16:32

2 ответа

В этом случае вы можете обойти часть tar в .tar.gz, поскольку вам не нужно обрабатывать несколько файлов, и сразу перейти к gzip для сжатия.

Для сжатия

gzip < file > file.gz

Для распаковки

gzip -d file.gz

или эквивалентно

gunzip file.gz

Вы также можете использовать утилиты сжатия bzip2 и xz с похожим синтаксисом. xz обычно создает сжатые файлы меньшего размера, чем gzip или bzip2.

(Сноска)

Если вы создаете сжатый файл и затем используете scp для его передачи, вы можете использовать встроенное сжатие:

cat file | ssh -C user@remote 'cat >> remote_file'

или

scp -C file user@remote:/path/on/remote

или

rsync -avz file user@remote:/path/on/remote    
0
ответ дан 8 November 2012 в 16:32

Отключите опцию f.

Что-то, что я сделал, выглядит следующим образом:

tar -cz *.xml

Это печатает на стандартный вывод. Затем я мог бы использовать некоторый код для входа в ssh на сервер tar / gzip и сохранить их все локально, не создавая новый файл на сервере.

0
ответ дан 8 November 2012 в 16:32

Другие вопросы по тегам:

Похожие вопросы: