Могу ли я копировать в stdout/pipe?

Вы должны использовать

hostname -d

для этого.

Чтобы отбросить последнюю часть домена, существует множество различных способов; например

hostname -d | sed -E 's/\.[^.]+$//'
2
04.02.2020, 23:49
2 ответа

Вы не можете использовать cp, так как cpпри нормальных обстоятельствах не записывает в стандартный вывод, но вы можете использоватьcat:

cat device-file | gzip -c >some-output-file

В этом случае имеет смысл использовать cat, так как вам, вероятно, потребуется префикс sudoили аналогичная команда для доступа к устройству из сеанса оболочки непривилегированного пользователя. Если вы находитесь в корневой оболочке (по какой-то причине, а причины почти никогда нет ),

gzip -c <device-file >some-output-file

тоже сработало бы.

4
28.04.2021, 23:24

Вы можете создать именованный канал и скопировать в него свое устройство:

mkfifo /tmp/mypipe
cp device-file /tmp/mypipe

затем откройте другую оболочку, где вы запускаете gzip параллельно для чтения из канала и записи в выходной файл:

gzip </tmp/mypipe >outfile.gz

Когда они закончатся, вы можете удалить именованный канал

rm /tmp/mypipe
3
28.04.2021, 23:24

Теги

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