gzip принимает stdin?

Когда я передаю по каналу к gzip это не может принять stdin, который я должен с помощью xargsпреобразовать stdin в аргумент

$ls
1.txt
$ls |xargs gzip && ls 
1.txt.gz

каждая вещь в порядке. но когда я хочу сжать cpio архивный файл

$ls | cpio -ov | gzip > archive.cpio.gz

также это в порядке и это ls | cpio -ov | xargs gzip не делает work.why во второй ситуации gzip примите stdin, и он не может принять аргумент?

4
задан 29 September 2016 в 05:49

1 ответ

Существует различие между , стандарт параметров командной строки и ввел .

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

Однако, если никакие аргументы файла не передаются gzip, это принимает значение по умолчанию для чтения необработанные данные от , стандарт ввел и печатает сжатый результат к стандартному выводу. Если у Вас есть команда, производящая необработанные данные, которые Вы хотите сжать, можно передать ее по каналу к gzip.

12
ответ дан 23 November 2019 в 11:41

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

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