Com -f archive.tar
, tar -c
escreveria no arquivo, tar -x
extrairia dele. -f -
é uma sintaxe especial que significa "escrever para stdout" (se criar) ou "ler de stdin" (se extrair).
Isso permite usar tar
em pipes. O comando do cliente canaliza tar
para ssh
. No lado remoto, o servidor SSH executa ./ScriptServer.sh
e envia o fluxo de entrada para seu stdin. tar -f -
dentro do script lê este fluxo.
Você está certo de que -f -
não está documentado em man 1 tar
(pelo menos nos manuais que leio). Sem -f
, a ferramenta deve usar stdout ou stdin de qualquer maneira. Algumas outras ferramentas suportam -
como um "nome de arquivo" especial para apontar explicitamente para stdout ou stdin; Suponho que o suporte de -f -
em tar
seja apenas uma conformidade com este semi-padrão.