Verständnisfrage zum Thema * auf der Konsole

Markus Mayr maxl.mayr at aon.at
Mit Jan 9 22:44:45 GMT 2008


Hallo!

> ich hatte nun das Vergnügen, die BenutzerIDs der Homeverzeichnisse zu
> ändern. Also gab ich ein:
> # cd /home
> # chown -R frank.frank frank

AFAIK gilt dies für alle Dateien, auch für versteckte. Möglicherweise
fehlen dir die nötigen Rechte? Oder ich irre mich.

> Jetzt hat chown bei alle Dateien Owner und Group geändert. Aber nicht
> bei den versteckten Dateien. Gut, dafür sind diese ja auch versteckt.
> Als ich nun aber mit
> # cd frank
> # chown frank.frank *
> 
> alle Dateien ändern wollte, wurden die versteckten Dateien nicht beeinflußt.
> 
> Jetzt mein Verständnisproblem: Das Sternchen * steht doch für "Alle
> Zeichen in beliebiger Anzahl". Warum muss ich denn die
> Hidden-Verzeichnisse extra noch mal "anfassen"?
> 
> Oder habe ich da den Sinn des * falsch verstanden?

Das erste Zeichen darf kein . sein. Versteckte Dateien werden hier also
gesondert betrachtet. Dadurch werden unter anderem auch die Hardlinks
auf das Verzeichnis selbst und auf das übergeordnete Verzeichnis
übergangen. Wenn du alle Dateien haben willst, die mit einem Punkt
beginnen, nimmst du am Besten ".*". Da ist aber auch ".." dabei. Besser
wäre es also beispielsweise .[!.]* zu nehmen. Wenn du dann noch alle
sichtbaren Dateien haben willst, dann müsstest du etwas wie {*,.[!.]*}
nehmen.

MfG
Markus Mayr