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

Re: ls -d



Am Dienstag, 27. Dezember 2011 schrieb René Kray:
> Am 27.12.2011 12:23, schrieb Martin Steigerwald:
> >>> ls -I "*/"
> >>> 
> >>> listet Verzeichnisse trotzdem.
> >> 
> >> Was willst Du denn mit "-I"? Das Zeichen "/" ist in Datei- und
> >> Verzeichnisnamen nicht erlaubt. Damit bringt es Dir nichts, "*/"
> >> zu ignorieren. Dieses Muster matcht nie.
> > 
> > Meine Güte!
> > 
> > Ich hab nur mal geschaut, wie das in ls implementiert ist. Hätte ja
> > sein können, dass ls intern auf einen / für Verzeichnisse matcht.
> > 
> > Wars nicht, gut ist.
> > 
> > Kein Grund, ein Drama draus zu machen.
> 
> Macht ja keiner ein Drama draus. Für mich klang das wie eine Frage und
> ich wollte Dir nur erklären, dass das nicht funktionieren kann. Wenn
> Du keine Antwort willst, dann frag nicht. Oder sehe ich das falsch?

Das war keine Frage. Ich hab nur rumprobiert. Auch mit -F. Weil ich eben 
nicht wusste, wie ls es intern macht. Nun, mit -F wird der Schrägstrich 
auch erst bei der Ausgabe angehängt und für das Ignorier-Muster nicht 
verwendet.

Bei Rsync zum Beispiel läßt sich durchaus auf "/" als vollkommen legalen 
Bestandteil eines Pfades - im Gegensatz zu einem reinen Datei- oder 
Verzeichnisnamen - matchen. Und die Manpage zu ls -l ist da nicht komplett 
eindeutig:

      -I, --ignore=PATTERN
              do not list implied entries matching shell PATTERN

Jow, und so ein Shell-Pattern funktioniert eben auch durchaus mit 
Schrägstrichen, wie mein anderes Beispiel nannte.

Aus all dem war es für mich nicht offensichtlich, wie ls arbeiten würde und 
daher probierte ich es aus. In den Quelltext schauen, das wäre die andere 
Alternative gewesen, wollte ich nicht.

So fand ich auch heraus, wie -ctime, -mtime und -atime in find wirklich mit 
Tagen rechnen arbeiten. Die Manpage dazu war zumindest undeutlich, ist es 
vielleicht noch und ich gehe davon aus, dass 99% aller Linux-Benutzer 
nicht wissen, wie find da genau rechnet. Ich habs mit -exec ls -ld {} \; 
nachgeprüft.

Daher halte ich mich mit Schlußfolgerungen "Das kann ja gar nicht anders 
sein, weil …" durchaus zurück. Den manchmal liegen solche Schlußfolgerung 
voll daneben.

-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7


Reply to: