Re: tar: can't translate pathname "..." to UTF-8
Polytropon <[email protected]> Mon, 31 Jul 2017 15:30:30 +0200
| Newsgroups | gmane.os.freebsd.questions.german |
|---|---|
| Organization | EDVAX |
| Message-ID | <[email protected]> |
On Mon, 31 Jul 2017 09:29:52 +0200 (CEST), Oliver Fromme wrote: > Hi, > > Marc Santhoff wrote: > > Tag schon wieder, > > > > ich fasse mal zusammen: > > > > 1. Die Warnung von bsdtar ist wirklich nur eine Warnung, die Dateien > > werden unverändert eingepackt. > > Was ich nicht verstehe: Wieso sollte tar versuchen, irgendwas > nach UTF-8 zu konvertieren, wenn man das nirgendwo konfiguriert > hat? Das Default-locale ist "C" (d.h. 7bit US-ASCII), *nicht* > UTF-8. Vielleicht is im System aber durch irgend etwas UTF-8 als Locale gesetzt worden? Also an einer Stelle, wo es sich auch auf cron-Jobs auswirken kann? > Offenbar nimmt BSD-tar an, wenn kein locale gesetzt ist, aber > trotzdem 8-Bit-Zeichen in Dateinamen vorkommen, dass diese > in UTF-8 kodiert sind. Das mag zwar inzwischen in vielen > Fällen tatsächlich zutreffen, aber halt nicht in allen (wie > bei Dir). Ich persönlich fände es richtiger, sich an den > Standard zu halten und nicht zu versuchen, zu "raten", was > der Benutzer gemeint haben könnte. Die Fehlermeldung gibt leider wenig Ansatzfläche her. :-( > Die Lösung (bzw. Workaround) für Dich wäre natürlich, das > locale korrekt zu setzen, also etwa zu beginn des Skripts > diese Zeile: > export LC_CTYPE=en_US.ISO8859-15 > Oder Du setzt es in der crontab (dann ohne das "export"), > dann gilt es halt gleich für alle cron-Jobs. Mit den $LC_*-Variablen hat man, wie schon geschrieben, eine sehr feine Kontrolle darüber, wo man spracheinstellmäßig von den systemseitigen Vorgaben abweichen möchte. $LC_ALL (bzw. $LANG) ist da eher die "grobe Kelle" für alles und jeden. :-) > Oder Du stellst gleich ganz auf UTF-8 um. ;-) Ist das denn mittlerweile "der Standard"? > PS: Das hilft jetzt nicht direkt, aber weil es zur Sprache kam: > Das mit der Ellipsis war natürlich Unsinn. "..." hat weder als > ASCII-Zeichenfolge noch als UTF8-Ellipsis-Zeichen irgendeine > Sonderbedeutung für das Dateisystem. Richtig, denn sowohl "..." als auch "…" sind gültige Dateinamen und sollten problemlos in tar-Archiven erzeugt werden können. Auch beim Auspacken findet beim Dateianlegen keine Interpreta- tion statt - die 2 Byte für "…" werden im Dateisystem als Datei- name hinterlegt, und ob man dann bei "ls" nun "…" sieht oder "A-Tilde ein Viertel umgedrehtes Fragezeichen" oder "Klotz", ist ja nicht Sache von tar. > In Skripten würde ich auch dazu raten, *nicht* LANG oder LC_ALL > zu setzen, wenn es nur um die Zeichencodierung geht. Dafür ist > LC_CTYPE zuständig. Anderenfalls kann es passieren, dass z.B. > ls(1), date(1) und andere Tools plötzlich ihre Ausgabe anders > formatieren (oder gar auf Deutsch machen), was zu Problemen > führen kann, wenn Skripte versuchen, deren Ausgaben zu parsen. Sehr wichtiger Hinweis! -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ... To Unsubscribe: send mail to [email protected] with "unsubscribe de-bsd-questions" in the body of the message