В чем разница между аргументами - @ и - в zip-программе Unix?
Не оба -
а также -@
просто позвольте вам заменить аргументы в zip
с вещами через стандартный ввод? Какая разница?
1 ответ
Разница в том, что -
будет сжимать stdin
как будто stdin
сам файл для сжатия. -@
прочитает список имен файлов из stdin
и добавьте каждый из этих файлов в архив. Примеры на странице руководства иллюстрируют разницу (хотя, пожалуйста, не используйте -@
Например, он не работает и не будет работать с любыми именами, содержащими символы в IFS
как пробелы):
В Unix эта опция может быть использована для эффективного эффекта в сочетании с командой find (1). Например, чтобы заархивировать все исходные файлы C в текущем каталоге и его подкаталогах:
find . -name "*.[ch]" -print | zip source -@
а также
zip также принимает одну черту ("-") в качестве имени файла, который будет сжат, и в этом случае он будет считывать файл из стандартного ввода, позволяя zip принимать данные из другой программы. Например:
tar cf - . | zip backup -