web-development-kb-pt.site

O que o parâmetro -f faz no comando tar

Ao usar tar, sempre incluo -f nos parâmetros mas não tenho ideia do porquê.

Eu olhei para o homem e disse;

-f, --file [HOSTNAME:]F

use archive file or device F (default
"-", meaning stdin/stdout)

Mas, para ser honesto, não tenho ideia do que isso significa. Alguém pode lançar alguma luz sobre isso?

19
Toby

O -f opção diz a tar que o próximo argumento é o nome do arquivo do arquivo, ou saída padrão se for -.

20
ddeimeke

Bem simples. Se você omitir o -f parâmetro, a saída é passada para stdout:

[email protected]:/tmp/demo$ tar -c a b c
a0000644000175000017500000000000011435437117010223 0ustar  gammygammyb0000644000175000017500000000000011435437117010224 0ustar  gammygammyc0000644000175000017500000000000011435437117010225 0ustar  [email protected]:/tmp/demo$ ls
a  b  c
[email protected]:/tmp/demo$ 

...que bagunça!

O -f- parâmetro (como você citou) espera um nome de arquivo (e opcionalmente um nome de host), portanto, o primeiro argumento após ele é o nome de arquivo de saída:

[email protected]:/tmp/demo$ tar -cf output.tar a b c
[email protected]:/tmp/demo$ ls
a  b  c  output.tar
[email protected]:/tmp/demo$ 
8
gamen

Ele permite que você especifique o arquivo ou dispositivo com o qual trabalhará. Criar, atualizar ou extrair coisas dele, dependendo de outros sinalizadores fornecidos. Por exemplo:

# Create a tar file with the contents of somepath/
tar -cvf filename.tar somepath/

# Extract the tar file.
tar -xvf filename.tar
2
signine