[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [FreeBSD] FAT32 und polnische Zeichen in Dateinamen? Invalid argument


* Raphael H. Becker (Raphael.Becker@xxxxxx) wrote:
> On Tue, Sep 06, 2005 at 06:13:23PM +0200, Cedrik Kern wrote:
> > > # mv 07\ Czekaj\?c\ na\ s\?o\?ce.mp3 07\ Czekaj\?c\ na\ s\?o\?ce_.mp3 
> > > mv: rename 07 Czekaj?c na s?o?ce.mp3 to 07 Czekaj?c na s?o?ce_.mp3:
> > > Invalid argument
> > > 
> > > Bei der Eingabe war die bash-autocompletion hilfreich, was "mv" aber
> > > nicht wirklich beeindruckt hat. Dito mit touch oder stat.
> 
> > Normalerweise sind in Dateinamen alle Zeichen erlaubt ausser dem slash
> > und einem Nullbyte der Slash ist ja bekanntermassen Verzeichnisstrenner 
> > und das Nullbyte makiert das Stringende. Du koenntest es mal anstatt mit
> > bash auto completition auf die Namen mit find auf die inodes probieren:
> > ls -i
> > find ./ -inum $BOESERDATEIINODE -exec rm {} \;
> 
> Bei Befehlen wie zB "du" werden die Dateinamen unabhaengig von der shell
> aufgelistet und anschliessend ge-stat()-et. scheinbar schlaegt stat()
> fehl (mangels funktionierendem truss konnte ich das nicht wirklich genau
> rausfinden) 
> 
> --> man 2 stat oder
> http://www.freebsd.org/cgi/man.cgi?query=stat&sektion=2
> 
Ja als ich dein erstes Posting gelesen habe, hab ich darauf getippt,
dass die bash (hab hier keine bash zum ausprobieren) einfach nur falsch
die zeichen escaped und dann ls wegen falscher parameter schreit, aber
aus deinem Posting, wenn man es denn genau liesst kann man ja erkennen,
dass das nicht der Fall ist... meine Unachtsamkeit.
Was aber weiterhin gilt ist, dass alle Zeichen ausser \0 und / in einem
Dateinamen vorkommen duerfen. 
> Mit rm muesste ich einen inode loeschen koennen und alle daran geknuepfte
> Verzeichniseintraege. 
> 
IIRC kann man das mit debugfs ob das auch fat32 unterstuezt weiss ich
nicht. Wenn das nicht geht koenntest du auch mit nem hexeditor direkt im
dateisystem die Problematischen Bytes austauschen.
> Aber ok, Theorie, hier die Praxis:
> 
> # ls -li 
> ls: 01 Pocz?tek.mp3: Invalid argument                            <--- !!
> ls: 03 Kraina umar?ych wg A Vivaldi.mp3: Invalid argument        <--- !!
> ls: 05 Bez imienia' Krzysiek Baczy?ski.mp3: Invalid argument     <--- !!
> ls: 07 Czekaj?c na s?o?ce.mp3: Invalid argument                  <--- !!
> total 35352
> 1125656519 -rw-r--r--  1 rabe  multimedia  7301791 Jun 14 17:59 02 Hate and love.mp3
> 1125656525 -rw-r--r--  1 rabe  multimedia  4416619 Jun 14 17:59 04 Wiara.mp3
> 1125656531 -rw-r--r--  1 rabe  multimedia  5624521 Jun 14 17:59 06 Sen.mp3
> 1125656537 -rw-r--r--  1 rabe  multimedia  4945337 Jun 14 17:59 08 Nocne kwiaty.mp3
> 1125656540 -rw-r--r--  1 rabe  multimedia  3966477 Jun 14 17:59 09 '24'W'G N Paganini.mp3
> 1125656543 -rw-r--r--  1 rabe  multimedia  4281618 Jun 14 17:59 10 Chleb i krew.mp3
> 1125656547 -rw-r--r--  1 rabe  multimedia  4085177 Jun 14 17:59 11 Brama' Dante Aligieri.mp3
> 1125656550 -rw-r--r--  1 rabe  multimedia  1557360 Jun 14 17:59 12. Koniec.mp3
> 
> D.h. ls sieht zwar, dass es die Dateinamen gibt, kann diese aber nicht
> "anfassen". Entsprechend kann ich davon auch keine inodes sehen. Alle
> Dateinamen im Verzeichnis, die "sauber" sind, werden normal aufgelistet.
ich nehm ann truss is sowas wie strace und Konsorten der Output waere
wirklich interresant.
> Leider ist truss auf meinem Rechner grad kaputt, sonst haette ich das mal
> getracet:
> 
> # truss -fa -o ls-li.truss ls -li *
> truss: PIOCBIS: Inappropriate ioctl for device
> 
> ... und /proc ist bei mir standardmaessig gemountet (ist bei FreeBSD nicht
> standardmaessig so).
> 
> Siehe
> http://lists.freebsd.org/pipermail/freebsd-bugs/2005-March/011947.html
> http://lists.freebsd.org/pipermail/freebsd-bugs/2005-March/012096.html
>  ... das muss ich mir auch mal genauer ansehen, kann doch nicht sein,
> dass so was elementares wie truss nicht mehr geht!
> 

-- 
Viele Gruesse Cedrik