No programa zip do Unix, qual é a diferença entre os argumentos - @ e -?

1

Não faça as duas coisas -e -@apenas permita que você substitua argumentos zippor coisas transmitidas por meio de entrada padrão? Qual é a diferença?

Raiden Worley
fonte

Respostas:

1

A diferença é que -irá compactar stdincomo se stdinfosse o próprio arquivo a ser compactado. -@lerá uma lista de nomes de arquivos stdine incluirá cada um desses arquivos no arquivo morto. Os exemplos na página do manual ilustram a diferença (embora, na verdade, não use o -@exemplo, ele está quebrado e falhará em qualquer nome que contenha caracteres em IFSespaços semelhantes):

No Unix, esta opção pode ser usada com efeitos poderosos em conjunto com o comando find (1). Por exemplo, para arquivar todos os arquivos de origem C no diretório atual e seus subdiretórios:

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

e

zip também aceita um único traço ("-") como o nome de um arquivo a ser compactado; nesse caso, ele lerá o arquivo da entrada padrão, permitindo que o zip receba a entrada de outro programa. Por exemplo:

tar cf - . | zip backup -
Eric Renouf
fonte