hallo,
ich habe viele files und folders und subfiles bzw. subfolders auf meinem webserver root verzeichniss.
ich möchte alle files und subfiles die rechte 644 geben und ich möchte allen folders und subfolders die rechte 755 geben.
Jetzt meine frage, wie mache ich es in einem rutsch, d.h mit maximal 2 befehlen?
wenn ich z.B. "chmod -R 755 *" eingebe, dann haben logischerweise die files auch die rechte 755, was ich aber nicht will.
weiss jemand wie ich das hinkriege ohne jeden file bzw folder einzeln zu bearbeiten?
danke
monte
chmod 644 und 755 in einem rutsch
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
Re: chmod 644 und 755 in einem rutsch
Code: Select all
find /wo/du/es/brauchst -type f | xargs chmod -R 644
find /wo/du/es/brauchst -type d | xargs chmod -R 755
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
- Userprojekt
- Posts: 269
- Joined: 2002-10-23 08:28
- Location: Karlsruhe
Re: chmod 644 und 755 in einem rutsch
Das wär was für die FAQ oder? ;-)
Muss ich mir notieren...
Muss ich mir notieren...
-
- Posts: 2138
- Joined: 2002-12-15 00:10
- Location: Bergheim
Re: chmod 644 und 755 in einem rutsch
Eh, also die -R's sind zuviel ;) Kleine Anmerkung noch: Ich wurde von kurzem belehrt das find + xargs wohl ineffektiv ist, auch wenn ich es auch so machen würde. -exec soll wohl besser sein.CaptainCrunch wrote:Code: Select all
find /wo/du/es/brauchst -type f | xargs chmod -R 644 find /wo/du/es/brauchst -type d | xargs chmod -R 755
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
Re: chmod 644 und 755 in einem rutsch
Stimmt, sollte man in dem Fall weglassen, hier ist es Schwachsinn, und führt zu falschen Ergebnissen. Sollte also so aussehen:Eh, also die -R's sind zuviel
Code: Select all
find /wo/du/es/brauchst -type f | xargs chmod 644
find /wo/du/es/brauchst -type d | xargs chmod 755
Wer sagt denn sowas? Versuch mal, eine Aktion auf eine find-Rückgabe von mehreren tausend Files anzuwenden; es wird nicht klappen. xargs hingegen bereitet keinerlei Probleme. Die Quelle für diese Aussage würde mich aber mal brennend interessieren.Kleine Anmerkung noch: Ich wurde von kurzem belehrt das find + xargs wohl ineffektiv ist, auch wenn ich es auch so machen würde. -exec soll wohl besser sein.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
- Posts: 14
- Joined: 2003-07-03 14:28
Re: chmod 644 und 755 in einem rutsch
danke für die schnelle antwort.
für einige dateien kommt diese meldung
warum sagt er mir dass diese datei nicht existiert?
für einige dateien kommt diese meldung
Code: Select all
chmod: failed to get attributes of `own': No such file or directory
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: chmod 644 und 755 in einem rutsch
Das war (denke ich) so gemeint:CaptainCrunch wrote:Wer sagt denn sowas? Versuch mal, eine Aktion auf eine find-Rückgabe von mehreren tausend Files anzuwenden; es wird nicht klappen. xargs hingegen bereitet keinerlei Probleme. Die Quelle für diese Aussage würde mich aber mal brennend interessieren.Kleine Anmerkung noch: Ich wurde von kurzem belehrt das find + xargs wohl ineffektiv ist, auch wenn ich es auch so machen würde. -exec soll wohl besser sein.
Code: Select all
find /dir -type f -exec chmod 644 {} ;
find /dir -type d -exec chmod 755 {} ;
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
Re: chmod 644 und 755 in einem rutsch
Wie gesagt: probier die -exec-Variante mal bei mehreren tausend Files aus.Das geht völlig problemlos und macht im Endeffekt auch nichts anderes als die Version mit xargs.
Vermutlich weil der Dateiname ein oder mehrere Leerzeichen enthält.warum sagt er mir dass diese datei nicht existiert?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: chmod 644 und 755 in einem rutsch
Kannst du bei Gelegenheit bitte mal kurz erklären wieso das der Fall ist? Bei find wird das Kommando bei -exec für jede Datei ausgeführt, auf welche die Kriterien passen. {} wird dabei durch den aktuellen Dateinamen ersetzt. Bei xargs ist es doch ähnlich. Da wird eben zuerst die Dateiliste erstellt und diese danach durchgegangen und das Kommando, welches xargs übergeben wurde, ausgeführt. Oder hab ich einen kapitalen Denkfehler?CaptainCrunch wrote:Wie gesagt: probier die -exec-Variante mal bei mehreren tausend Files aus.Das geht völlig problemlos und macht im Endeffekt auch nichts anderes als die Version mit xargs.
-
- Userprojekt
- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
Re: chmod 644 und 755 in einem rutsch
OK, exakt, den Punkt hatte ich nicht mehr richtig im Kopf. -exec klappt zwar auch, ist aber bei vielen Files erheblich langsamer und vor allem ressourcenhungriger:Bei find wird das Kommando bei -exec für jede Datei ausgeführt, auf welche die Kriterien passen. {} wird dabei durch den aktuellen Dateinamen ersetzt.
Der Vorteil von xargs besteht darin, dass hier eine "einzelne" (Ausnahme zur Regel siehe *) Kommandozeile erzeugt wird. Dadurch muss das System nicht für jedes File einen exec()-Syscall absetzen, sondern kommt (günstigstenfalls) mit einem solchen Call aus.
Ein recht interessanter (wenn auch älterer) Link dazu findet sich unter http://freebooks.by.ru/view/RedHatLinux ... l6u205.htm (doert mal nach "xargs" suchen).
* Die Einschränkung dabei ist eine maximale Länge von Kommandozeilen des jeweiligen Systems, die aber von xargs automatisch gehandhabt wird. Der Fakt, dass hier erheblich weniger Syscalls benötigt werden bleibt aber bestehen.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
- Posts: 2138
- Joined: 2002-12-15 00:10
- Location: Bergheim
Re: chmod 644 und 755 in einem rutsch
Ah danke. Ich habe mir schon gedacht, dass daran etwas faul ist. Den Spezialisten werde ich die Tage mal zurecht stutzen ;)CaptainCrunch wrote:OK, exakt, den Punkt hatte ich nicht mehr richtig im Kopf. -exec klappt zwar auch, ist aber bei vielen Files erheblich langsamer und vor allem ressourcenhungriger:Bei find wird das Kommando bei -exec für jede Datei ausgeführt, auf welche die Kriterien passen. {} wird dabei durch den aktuellen Dateinamen ersetzt.
Der Vorteil von xargs besteht darin, dass hier eine "einzelne" (Ausnahme zur Regel siehe *) Kommandozeile erzeugt wird. Dadurch muss das System nicht für jedes File einen exec()-Syscall absetzen, sondern kommt (günstigstenfalls) mit einem solchen Call aus.
Ein recht interessanter (wenn auch älterer) Link dazu findet sich unter http://freebooks.by.ru/view/RedHatLinux ... l6u205.htm (doert mal nach "xargs" suchen).
* Die Einschränkung dabei ist eine maximale Länge von Kommandozeilen des jeweiligen Systems, die aber von xargs automatisch gehandhabt wird. Der Fakt, dass hier erheblich weniger Syscalls benötigt werden bleibt aber bestehen.