A opção -f
recebe um argumento (o nome do arquivo). Se z
aparecer após o f
, será considerado o nome do arquivo.
tar -xvfz one.tar.gz
é o mesmo que
tar -xvf z one.tar.gz
Se você tivesse feito isso:
tar -xvf -z one.tar.gz
então -z
teria sido considerado como o nome do arquivo e você teria recebido um erro semelhante.
Isso, no entanto, teria funcionado:
tar -xvz -f one.tar.gz
A página man% GNUtar
afirma:
The first argument to tar must be one of the options: Acdrtux, followed by any optional functions. The final arguments to tar are the names of the files or directories which should be archived.
Observe que, a menos que a entrada seja de stdin ou a saída seja stdout (onde apropriado), a opção -f filename
e o argumento devem ser fornecidos. Enquanto a página man implica que a ordem é fixa, na realidade as opções podem estar em qualquer ordem. Mesmo esse estranho funciona (mas pode não funcionar em todas as versões de tar
):
tar -v files_to_archive* -f xyz.tar.gz -cz
Para portabilidade, provavelmente é melhor seguir a ordem dos argumentos idiomáticos e até mesmo deixar o hífen:
tar czvf xyz.tar.gz files_to_archive*