Cosa fa il parametro -f nel comando tar


19

Quando si usa tarincludo sempre -fi parametri ma non ho idea del perché.

Alzai lo sguardo sull'uomo e disse:

-f, --file [HOSTNAME:]F

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

Ma ad essere sincero non ho idea di cosa significhi. Qualcuno può far luce su di esso?

Risposte:


20

L' -fopzione dice tarche l'argomento successivo è il nome del file dell'archivio, o output standard se lo è -.


Ah, salute! Ho presunto che il nome del file dovesse apparire comunque, quindi questo -f stava facendo qualcosa di più speciale!
Toby,

6
@Toby: sospetto che ciò sia dovuto a motivi storici. "tar" è l'abbreviazione di "archivio nastro" e presumibilmente le versioni originali non prevedevano che le persone usassero i file su disco per gli archivi molto spesso.
David Thornley,

8

Abbastanza semplice. Se si omette il -fparametro, l'output viene passato a 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$ 

...che casino!

Il -fparametro (come hai citato) si aspetta un nome file (e facoltativamente un nome host), quindi il primo argomento dopo è il nome file di output:

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$ 

5
> Se si opprime il parametro -f, l'output viene passato a stdout . Questo è vero con GNU tar, ma ricordo che su Solaris il default era un dispositivo a nastro ( /dev/rmt0o qualcosa del genere).
Cristian Ciupitu,

* ometti (non "opprimere")
Mr Ethernet il

1
Anche GNU taronora la TAPEvariabile non più documentata . Ad esempio, prova TAPE=/tmp/tape.tar tar cv /etc/h*e poi ls -l /tmp/tape.tar.
roaima,

2

Ti consente di specificare il file o il dispositivo con cui lavorerai. Creare, aggiornare o estrarre cose da esso a seconda degli altri flag forniti. Per esempio:

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

# Extract the tar file.
tar -xvf filename.tar
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.