30.000 files und chmod im directory-tree ...

peterle

Forenkasper
Ich schon wieder. :o

Nun habe ich den Verzeichnisbaum auf der anderen Kiste, aber leider sind die files modes teilweise verbogen.

Alle files und dirs im Baum geht mit chmod -R 0$$$ /woauchimmer
Wie kann ich aber nur die modes der Verzeichnisse im ganzen Baum ändern?
Die brauchen nämlich ein 0755 statt dem 0644 der files. :confused: :confused:

Mal wieder ein kleines Danke vom DAU. :rolleyes:
 
Ich schon wieder. :o

Nun habe ich den Verzeichnisbaum auf der anderen Kiste, aber leider sind die files modes teilweise verbogen.

Alle files und dirs im Baum geht mit chmod -R 0$$$ /woauchimmer
Wie kann ich aber nur die modes der Verzeichnisse im ganzen Baum ändern?
Die brauchen nämlich ein 0755 statt dem 0644 der files. :confused: :confused:

Mal wieder ein kleines Danke vom DAU. :rolleyes:

cd dein_verzeichnisbaum
find . -type d -exec chmod 0755 {} \;

Kleiner Tipp: als erstes würde ich

cd dein_verzeichnisbaum
find . -type d -exec ls -ld {} \;|more

ausführen. Damit kannst du sehen, welche Verzeichnisse geändert würden.

Viel Erfolg,

Greetz Mäsa
 
Wenn Du ein bildhübsches Mädchen wärst, würde ich Dich jetzt küssen ... :rolleyes:

Wie lernt man eigentlich solche Sachen?
Nur man pages lesen? :confused: :confused:
 
es gibt für chmod so schöne methoden die rechte zu setzen, ohne sie komplett anzugeben oder gar die bestehenden zu ignorieren.
z..b "chmod -R g=u" setzt die gruppen-rechte auf dieselben wie die benutzer-rechte. d.h. bei verzeichnissen und bei executables wird das x-recht gesetzt, bei den anderen halt nicht...
man kann auch sowas wie "chmod -R go=u-w" machen, d.h. gruppen- und welt-rechte werden zu den selben wie die benutzer-rechte, nur ohne schreibrecht. auch hier wird das x-recht gesetzt wo es beim benutzer war.

auf bald
oenone

ps: ich wunder mich immer, warum leute sich mit dem 0xxx so selbst quälen.
 
Wie lernt man eigentlich solche Sachen?
Nur man pages lesen? :confused: :confused:
Entweder Dokumentation lesen, oder googlen. Alles, was man dann irgendwie gebrauchen kann, schreibt man sich irgendwo auf. Die Dinger, die man häufig braucht, weiß man irgendwann auswendig, beim Rest ist man froh, dass man es aufgeschrieben hat. :)
 
deshalb starten deine threads wohl alle mit 30.000, nicht?

Es sind wirklich fast 30.000 Dateien in einem ellenlangen weit verschachtelten Verzeichnisbaum. Das ist der Datenhaufen hinter ein paar Mysqlbanken.

Bis jetzt hatte ich noch nicht das Vergnügen solche großen Mengen verarbeiten zu müßen und da beide Threads sich um die selbe Sache drehen, habe ich die titel angepasst.

Die Bezeichnung der modes ist vermutlich eine eher persönliche Sache. Die 0755 sind für die einen besser "verständlich" als für die anderen.
Das ist nicht wertend und dürfte zu langen philosophischen Diskussionen führen, wenn man das vertiefen würde. :)
 
Aber Obacht!
Ich weiss nicht, wo genau die Grenze ist, aber find -exec kann nicht beliebig viele Files/Directories bearbeiten.
Besser:
find + xargs benutzen. Koennte sogar performanter sein.
 
Die Bezeichnung der modes ist vermutlich eine eher persönliche Sache. Die 0755 sind für die einen besser "verständlich" als für die anderen.
Das ist nicht wertend und dürfte zu langen philosophischen Diskussionen führen, wenn man das vertiefen würde. :)

Es geht hier nicht um verständlichkeit oder um die bezeichnung... Mit der oktalen Angabe kannst du nicht die Rechte an sich modifizieren, sondern nur auf einen neuen Wert setzen. Nehmen wir an, du hast ein Verzeichnis mit verschiedenen Dateien, die auch unterschiedliche Rechte besitzen. Jetzt willst du bei allen Dateien die Rechte so modifizieren, dass alle Nutzer sie lesen dürfen. Du musst also zuerst die vorhandenen Rechte auslesen und dann manipuliert neu setzen. mit o+r hast du das viel schneller. Das ganze kann auch noch beliebig komplizierter werden.

auf bald
oenone
 
Aber Obacht!
Ich weiss nicht, wo genau die Grenze ist, aber find -exec kann nicht beliebig viele Files/Directories bearbeiten.
Woher hast Du denn diese Idee?

Richtig ist, dass die Shell nicht beliebig lange Argumente zulässt; typischerweise betroffen sind Schleifen wie folgt in der shell:
Code:
[COLOR="DarkRed"]### schlechter Stil ##############################################
for bla in `find $PARAMETER -print`; ### Don't try this at home! #
  do WHATEVER   
  done[/COLOR]
Besser funktioniert da
Code:
[COLOR="DarkGreen"]find $PARAMETER -exec WHATVER {} \;[/COLOR]
 
z..b "chmod -R g=u" setzt die gruppen-rechte auf dieselben wie die benutzer-rechte. d.h. bei verzeichnissen und bei executables wird das x-recht gesetzt, bei den anderen halt nicht ...

Nach dem lesen deines letzten Beitrages, ist mir der Sinn deines ersten erst wirklich deutlich geworden.

Du hast natürlich Recht. Danke! :)
 
Woher hast Du denn diese Idee?

Richtig ist, dass die Shell nicht beliebig lange Argumente zulässt; typischerweise betroffen sind Schleifen wie folgt in der shell:
Code:
[COLOR="DarkRed"]### schlechter Stil ##############################################
for bla in `find $PARAMETER -print`; ### Don't try this at home! #
  do WHATEVER   
  done[/COLOR]
Besser funktioniert da
Code:
[COLOR="DarkGreen"]find $PARAMETER -exec WHATVER {} \;[/COLOR]

Ich habe gerade lange im Archiv von de-bsd-questions gewuehlt und das hier gefunden:
http://www.freebsd.de/archive/de-bsd-questions/de-bsd-questions.200403/0212.html
Das deckt sich mit deiner Aussage.
 
Zurück
Oben