Debian 9.3 - untar schlägt fehl und sagt, dass die Datei nicht existiert

7

In Debian 9.3 habe ich Folgendes ausgeführt:

cd /usr/local/src
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

Die Datei wurde einwandfrei heruntergeladen, und doch, wenn ich ausführe:

tar -xzfv maldetect-current.tar.gz

Ich bekomme:

tar (child): v: Cannot open: No such file or directory tar (child):
Error is not recoverable: exiting now tar: Child returned status 2
tar: Error is not recoverable: exiting now

Aber ls -lazeigt, dass die Datei tatsächlich existiert:

/usr/local/src# ls -la
total 3144
drwxrwsr-x  2 root staff    4096 Jan  8 11:46 .
drwxrwsr-x 11 root staff    4096 Jan  8 11:40 ..
-rw-r--r--  1 root staff 1605546 Jul 14 04:45 maldetect-current.tar.gz
Arcticooling
quelle

Antworten:

12

Der Dateiname sollte unmittelbar nach der Option f folgen.

tar -xzvf maldetect-current.tar.gz
Gerard H. Pille
quelle
29

Du wurdest in eine Falle geraten. tarunterstützt zwei Formate von Befehlszeilenoptionen, das übliche mit einem Bindestrich und das ältere Format ohne einen. Und sie unterscheiden sich hinsichtlich der Argumentation.

Hier:

tar -xzfv maldetect-current.tar.gz

Das Argument für -fist v, wie bei allen anderen Tools.

Auf der anderen Seite hier:

tar xzfv maldetect-current.tar.gz

Das Argument to fwird aus dem nächsten Befehlszeilenargument übernommen, dem Dateinamen, den Sie tatsächlich angeben wollten.

In der Fehlermeldung wird der Dateiname erwähnt, auf den zugegriffen werden soll. Möglicherweise haben Sie ihn nur übersehen, da er vziemlich kurz ist. Normalerweise wird die betreffende Datei jedoch in Fehlermeldungen aufgeführt.

Die GNU-Tar-Manpage erwähnt dies unter "Optionsstile":

Im traditionellen Stil ist das erste Argument eine Gruppe von Optionsbuchstaben, und alle nachfolgenden Argumente liefern Argumente für die Optionen, die sie erfordern.

Im UNIX- oder Short-Option-Stil wird jedem Optionsbuchstaben wie in anderen Befehlszeilenprogrammen ein einzelner Bindestrich vorangestellt. Wenn eine Option ein Argument annimmt, folgt das Argument darauf, entweder als separates Befehlszeilenwort oder unmittelbar nach der Option .

ilkkachu
quelle