Não sei por que tar cvfz funciona, quando estou acostumado a fazer uma verificação rápida da página man e da minha experiência, um hífen é uma prática padrão. Talvez seja uma coisa de compatibilidade do BSD (como ps ).
De qualquer forma, sua sintaxe está incorreta. -f usa o próximo argumento como o nome do arquivo para compactar. Nesse caso, esse nome de arquivo é z , o que você não esperava. Aqui está uma amostra da saída para que você possa ver o que quero dizer:
$ tar -cvfz test.tar.gz scott
tar: test.tar.gz: Cannot stat: No such file or directory
scott/
scott/netx/
scott/netx/locks/
scott/netx/locks/netx_running
tar: Exiting with failure status due to previous errors
Um ls mostra um arquivo chamado z . O comando file revela que é um arquivo tar descompactado. Ele está descompactado porque o argumento -z não foi passado. E a mensagem de erro veio da tentativa de adicionar o arquivo inexistente test.tar.gz ao arquivo.
Simplesmente reordene as opções e você ficará bem:
tar -czvf test.tar.gz some/directory
Se você sempre fizer o -f o último argumento, você ficará bem. A propósito, lembre-se que opções curtas (opções de uma letra) que aceitam argumentos normalmente não requerem um espaço entre a opção e o argumento.
EDIT: A propósito, se o formulário sem o hífen for algo compatível com o BSD ou algo assim, é provável que a maneira como o tar é invocado em tal ambiente seja diferente, e não requer o sinal f para especificar o arquivo de entrada, mas funciona mais como cp ou algo assim. Mas isso é apenas especulação baseada na comparação com ps (q.v.).