Was macht der Parameter -f im Befehl tar?


19

Bei der Verwendung beziehe tarich immer -fdie Parameter ein, aber ich habe keine Ahnung warum.

Ich sah den Mann auf und es sagte;

-f, --file [HOSTNAME:]F

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

Aber um ehrlich zu sein, ich habe keine Ahnung, was das bedeutet. Kann jemand Licht ins Dunkel bringen?

Antworten:


20

Die -fOption gibt an, tardass das nächste Argument der Dateiname des Archivs oder die Standardausgabe ist, falls dies der Fall ist -.


Ah, Prost! Ich nahm an, dass der Dateiname ohnehin als nächstes erscheinen musste, also tat dies etwas Besonderes!
Toby

6
@Toby: Ich vermute, das hat historische Gründe. "tar" ist die Abkürzung für "tape archive", und vermutlich sahen die Originalversionen nicht so oft Menschen vor, die Plattendateien für Archive verwendeten.
David Thornley

8

Ziemlich einfach. Wenn Sie den -fParameter weglassen , wird die Ausgabe an stdout übergeben:

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$ 

...was für ein Chaos!

Der -f-Parameter erwartet (wie Sie angegeben haben) einen Dateinamen (und optional einen Hostnamen), daher das erste Argument nach dem Ausgabedateinamen:

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
> Wenn Sie den Parameter -f drücken, wird die Ausgabe an stdout übergeben . Dies gilt für GNU tar, aber ich erinnere mich, dass unter Solaris standardmäßig ein Bandgerät ( /dev/rmt0oder so ähnlich) verwendet wurde.
Cristian Ciupitu

* auslassen (nicht "unterdrücken")
Herr Ethernet vor

1
Sogar GNU tarerkennt die nicht mehr dokumentierte TAPEVariable an. Versuchen Sie es zum Beispiel TAPE=/tmp/tape.tar tar cv /etc/h*und dann ls -l /tmp/tape.tar.
roaima vor

2

Hier können Sie die Datei oder das Gerät angeben, mit dem Sie arbeiten möchten. Erstellen, Aktualisieren oder Extrahieren von Dingen in Abhängigkeit von anderen bereitgestellten Flags. Beispielsweise:

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

# Extract the tar file.
tar -xvf filename.tar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.