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

14

Ao usar tar , sempre incluo -f nos parâmetros, mas não faço ideia do motivo.

Eu olhei para o homem e ele 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?

    
por Toby 26.08.2010 / 12:00

3 respostas

15

"- f" diz ao tar que o próximo parâmetro é o nome do arquivo do repositório ou STDOUT se for "-".

    
por 26.08.2010 / 12:19
6

Muito simples. Se você oprimir o parâmetro -f , a saída será passada para stdout:

gammy@denice:/tmp/demo$ tar -c a b c
a0000644000175000017500000000000011435437117010223 0ustar  gammygammyb0000644000175000017500000000000011435437117010224 0ustar  gammygammyc0000644000175000017500000000000011435437117010225 0ustar  gammygammygammy@denice:/tmp/demo$ ls
a  b  c
gammy@denice:/tmp/demo$ 

... que bagunça!

O -f -parameter (como você citou) espera um nome de arquivo (e, opcionalmente, um nome de host), portanto, o primeiro argumento após ser o nome do arquivo de saída:

gammy@denice:/tmp/demo$ tar -cf output.tar a b c
gammy@denice:/tmp/demo$ ls
a  b  c  output.tar
gammy@denice:/tmp/demo$ 
    
por 26.08.2010 / 12:19
2

Ele permite que você especifique o arquivo ou dispositivo com o qual você vai trabalhar. Quer criar, atualizar ou extrair coisas dele dependendo de outros flags 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
    
por 26.08.2010 / 12:14

Tags