Ich hatte einem Kollegen per Chat geschieben, er solle, um sein Homedirectory auf seinem Ubuntu-Rechner zusammenzupacken, im Terminal eingeben: cd ~ && tar czvf /tmp/meinedateien.tgz .
Er antwortete: “Wenn ich das eingebe, bekomme ich die Fehlermeldung: Anlegen eines leeren Archivs wird feige verweigert.”
Ich dachte zuerst, der Kollege spinnt oder macht sich einen Spaß, daß er was von “feige verweigern” schreibt. Was soll “feige verweigern” sein? Aber dann schickte er mir ein Bildschirmfoto, das bestätigte, daß Tar tatsächlich behauptet hatte, das Anlegen eines leeren Archives feige zu verweigern.
Nun dachte ich, daß “feige verweigern” mal wieder eine bekloppte Übersetzung aus dem Englischen sein könnte, so wie wir es zum Beispiel mit “Von” und “An” beim Serienbrief mit Word und Excel kennen.
Die eigentliche Ursache des Fehlers war schnell gefunden. Der Kollege hatte den Punkt hinter tgz nicht eingegeben, weil er ihn für den Punkt am Ende des Satzes meiner Chatnachricht gehalten hatte, die wörtlich so lautete:
Gib im Terminal ein: cd ~ && tar czvf /tmp/meinedateien.tgz .
Ich glaube aber nicht, daß die Sache besser ausgegangen wäre, hätte ich geschrieben:
Gib im Terminal ein: cd ~ && tar czvf /tmp/meinedateien.tgz ..
Nachdem ich also erklärt hatte, daß der Punkt zum Kommando gehört und der Kollege den Punkt mit eingegeben hatte, fuktionierte alles, und es blieb nur für mich noch die Frage, weshalb Tar etwas feige verweigert.
Dazu sah ich mir zunächst die Fehlermeldung im Original an, indem ich sie auf einem englischen Ubuntu provozierte:
$ tar c
tar: Cowardly refusing to create an empty archive
Try ‘tar –help’ or ‘tar –usage’ for more information.
Und tatsächlich! Das Wort “cowardly” wird mit “feige” übersetzt, wenn man dict.cc glaubt:
Das fand ich sinnlos, das finde ich sinnlos, weil es immer noch keinen richtigen Sinn ergibt, etwas feige zu verweigern. Also fragte ich in meiner Verzweiflung ChatGPT, was denn nun das “Cowardly” in der Fehlermeldung bedeuten solle und bekam die Antwort:
The term “Cowardly” in the error message is just a humorous way of saying that tar is being cautious and refusing to perform an action that might not be what the user intended, such as creating an empty archive without specifying any files or directories to include in it.
Es mag sein, daß das “Cowardly” von einem Muttersprachler an dieser Stelle als witzig empfunden wird, das kann ich nicht beurteilen. Wenn dem so wäre, ist die 1:1‑Übersetzung mit feige jedoch nicht gelungen, da muß schon mehr kommen, vielleicht: “Anlegen eines leeren Archivs wird mit schißhafter Vorsicht verweigert”, oder, um den Vorschlägen von dict.cc etwas näher zu bleiben: “Tar hat nicht die Eier, ein leeres Archiv anzulegen.”
Abschließend möchte ich noch zeigen, wie die Fehlermeldung auf FreeBSD aussieht, denn FreeBSD bringt sein eigenes Tar mit, das so genannte Bsdtar, das nach langer Entwicklungszeit vor einigen Jahren (ich weiß nicht wie vielen) offiziell Gnutar auf FreeBSD ersetzt hat. Dies wurde in der Szene von einigen belächelt: Warum schreiben die ihr eigenes Tar? Es gibt doch Gnutar!
Vielleicht haben sie deshalb ihr eigenes Tar geschrieben:
$ tar c
tar: no files or directories specified
Die Fehlermeldung ist absolut klar und “witzlos”, und man erkennt auf Anhieb, was man falsch gemacht hat.
1 Kommentar
Schugy
Nach Vorbild von bsdtar sollte auch gnutar eine verständliche Fehlermeldung ausgeben. Ostereier wie apt-get moo dürfen trotzdem enthalten sein. In erster Linie gebe ich nach einigen Abbrüchen wegen sockets oder devices dem Befehl cpio den Vorzug.
Schreib einen Kommentar