1

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

1 ответ1

1

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

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

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

а также

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

tar cf - . | zip backup -

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .