В чем разница между аргументами - @ и - в zip-программе Unix?

Не оба - а также -@ просто позвольте вам заменить аргументы в zip с вещами через стандартный ввод? Какая разница?

1 ответ

Разница в том, что - будет сжимать stdin как будто stdin сам файл для сжатия. -@ прочитает список имен файлов из stdin и добавьте каждый из этих файлов в архив. Примеры на странице руководства иллюстрируют разницу (хотя, пожалуйста, не используйте -@ Например, он не работает и не будет работать с любыми именами, содержащими символы в IFS как пробелы):

В Unix эта опция может быть использована для эффективного эффекта в сочетании с командой find (1). Например, чтобы заархивировать все исходные файлы C в текущем каталоге и его подкаталогах:

find . -name "*.[ch]" -print | zip source -@

а также

zip также принимает одну черту ("-") в качестве имени файла, который будет сжат, и в этом случае он будет считывать файл из стандартного ввода, позволяя zip принимать данные из другой программы. Например:

tar cf - . | zip backup -
Другие вопросы по тегам