2017-02-23 86 views
1

Мне нужно создать кучу файлов .gz для тестирования чего-то. Возможно (в оболочке на основе unix) сделать пустой файл (например, touch file1) и zip (например, file1.gz) с помощью простой однострочной линии (вдоль: touch file1 | zip). Как я могу перенаправить файл в zip?linux: коснитесь пустого файла и zip одной командой

+0

'gzip < /dev/null > file.gz'? – Biffen

+0

Работает! - Что здесь делает/dev/null? – user3375672

+1

Просто простой способ накормить «ничего» в STDIN 'gzip'. Вы можете использовать ': | gzip', 'echo -n | gzip' или несколько разных способов. – Biffen

ответ

1
gzip </dev/null> file.gz 

Т.е. feed gzip пустой ввод и перенаправление вывода на file.gz. Не требуется никакого временного пустого файла.

Это предполагает, что имеется /dev/null (т. Е. Система POSIX (-ish)). Альтернативами будут:

:   | gzip […] 
true  | gzip […] 
printf '' | gzip […] 
echo -n | gzip […] # Won't work in strictly POSIX environments 
… 

I.e. все, что доступно, и ничего не печатает в STDOUT.


Вы упомянули zip, но так как вы сказали, что нужно .gz файлы, которые я предполагаю, что вы хотите gzip.

1

Например:

touch file1 && zip file1.zip file1 
Смежные вопросы