Re: tar: can't translate pathname "..." to UTF-8

From: Polytropon <freebsd(at)edvax.de>
Date: Sun, 30 Jul 2017 17:45:32 +0200

On Sun, 30 Jul 2017 17:23:16 +0200, Harold Gutch wrote:
> Hi,
>
> On Sun, Jul 30, 2017 at 04:55:59PM +0200, Polytropon wrote:
> > On Sun, 30 Jul 2017 04:15:00 +0200, Marc Santhoff wrote:
> > > Moin,
> > >
> > > die Fehlermeldung im Subjekt bekomme ich auf einem frischen 10er System.
> > > Es handelt sich um draufkopierte Dateinamen mit Umlauten.
> >
> > Das UFS-Dateisystem ist grundsätzlich Umlaut-agnostisch, d. h. es
> > kümmert sich nicht um Zeichencodierungen, sondern übernimmt die
> > Bytes so, wie sie sind.
>
> Aber die Tools die das benutzen nicht unbedingt. Irgendwas bekommt ja
> eine Folge von Bytes und macht etwas damit, interpretiert es z.B. als
> ASCII und zeigt das dann an, oder interpretiert das als UTF-8 und
> sortiert die Liste der Datinamen dann o.ä. (oder umgekehrt, liest
> z.B. einen String mit Umlauten, encodet das in eine Folge von Bytes
> und erzeugt eine Datei mit diesem Namen). Das fängt schon bei ls an -
> und hier in dem Fall ist das eben tar.

Völlig richtig.

> UFS (bzw. dem Treiber) ist das aber in der Tat ziemlich egal was diese
> Folge von Bytes ist - zumindest fast, s.u.

Es gibt noch immer die paar Sonderzeichen, am bekanntesten Punkt und
Schrägstrich, die im Dateisystem Bedeutung haben (wie Du später auch
sagst: das sind die einzigen Sonderzeichen auf FS-Ebene), und die
Zeichen, die für die Shell besonders sind, z. B. Leerzeichen als
Trenner, Bindestrich als Parameterzeichen, Stern, Fragezeichen usw.

Besonders "schön" ist es, wenn man Zeichen nimmt, die den o. g. Zeichen
ähnlich sehen, aber keine sind ("falsche Leerzeichen", "falsches
Semikolon", "falsches Minus" usw.), da kann man dann Dateinamen
konstruieren, die "eigentlich unmöglich" sind. Ich denke aber nicht,
daß das hier das Problem ist, denn sowas machen nur Verrückte. :-)

> > Wenn ich mir die Meldung, die Du im Betreff zitierst, genau ansehe,
> > dann habe ich eine Idee, kann aber sein, daß ich da auf dem Holzweg
> > bin: Ist "..." eine Auslassung, oder soll das eine Ellipsis sein?
> > Vielleicht will tar die zu "Punkt Punkt Punkt" umwandeln, was aber
> > nicht geht, da der Punkt ja ein Sonderzeichen mit spezieller Pfad-
> > bedeutung ist. Aber da steht ja "to UTF-8", nicht "from", also sehe
>
> Nicht ganz - die einzigen *Zeichen* die für UFS speziell sind sind '/'
> ("forward slash") und '\0' (Nullbyte). Die beiden *Dateinamen* "." und
> ".." sind speziell definiert, aber "..." ist ein ganz normaler
> Dateiname, ebenso wie Dateinamen wie etwa " ".

Ja, das stimmt. Die Frage, die sich mir stellte, war ja die Umwandlung
_nach_ UTF-8, wo man die Wahl hat, aus "..." eine Ellipsis zu
konstruieren, aber das war wohl gar nicht das Problem.

> Ein Verzeichnis "..."
> ist aber oftmals ein Hinweis auf einen Eindringling weil man das
> leicht übersieht wenn man nicht genau hinsieht.

Oder "nur ein Leerzeichen" als Dateiname - völlig valide. :-)

> Ich ging bei Marcs Mail davon aus dass hier wirklich tar ein Problem
> damit hat einen Dateinamen nach UTF-8 zu konvertieren, hab jetzt aber
> auch nicht weiter geschaut ob tar wirklich irgendwelche
> Konvertierungen dieser Art durchführt.

Wie Du schon richtig angemerkt hast, spielt hier cron auch eine
wichtige Rolle, nämlich durch den stark begrenzten Umfang an
Umgebungsvariablen (z. B. /usr/local/bin nicht in $PATH). Da kann
es sein, daß ein explizites "Reinziehen" über die Shell-Konfiguration
notwendig ist, um tar die korrekte Interpretationsweise von Zeichen
mitzuteilen ($LC_*-irgendwas).

-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 30 Jul 2017 - 17:45:36 CEST

search this site