So leiten Sie eine Datei als Eingabe an einen TAR-Befehl weiter

So leiten Sie eine Datei als Eingabe an einen TAR-Befehl weiter

Beim Versuch, die weitergeleitete TAR-Datei mit dem folgenden Befehl zu dekomprimieren, wird die folgende Fehlermeldung angezeigt:

$ git archive --format=tar 0af62b1 | tar -xf -C /the/path/here/
tar: -C: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

Der erste Teil git archive --format=tar 0af62b1gibt eine Tar-Datei aus, die auf dem Bildschirm gedruckt wird. Diese Ausgabe kann mit dem Parameter in einer Datei erfasst werden --output file_name.

Im zweiten Teil versuche ich, den Inhalt der Datei in den angegebenen Pfad zu extrahieren. Wenn beide einzeln ausgeführt werden, funktioniert es perfekt, git archive 0af62b1 --output file_namegefolgt von tar -xf file_name -C /the/path/here/.

Warum ist in diesem Fall keine Weiterleitung möglich und woher weiß ich, ob ein bestimmter Befehl weitergeleitete Eingaben akzeptiert?

Antwort1

Ich würde versuchen, Ihr Dokument gitdorthin weiterzuleiten tar -xf - -C /the/path/here/, wo -auch die Standardeingabe ist. Oder einfacher tar -xC /the/path/here( -ist die Standarddatei).

Antwort2

Das Problem wird in Ihrer Fehlerausgabe angegeben:

$ git-Archiv --format=tar 0af62b1 | tar-xf -C/der/Pfad/hier/
tar:-C: Kann nicht geöffnet werden:Keine solche Datei oder kein solches Verzeichnis
tar: Fehler ist nicht behebbar: wird jetzt beendet

Sie weisen Tar an, eine Datei mit dem Namen -C zu verwenden, die nicht existiert, und daher tritt ein Fehler auf.

Im Arbeitsfall geben Sie eine Datei mit dem Namen Dateiname ein, die existiert, und alles funktioniert.

Mögliche Lösung: Entfernen Sie „-f -C“ aus dem Befehl.

verwandte Informationen