find, chmod und Leerstellen

Post Reply
Message
Author
aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

find, chmod und Leerstellen

#1 Post by aebi »

Hallo zusammen

Da ich immer wieder in mehreren Vereichnissen die gleichen Rechte eintragen musste habe ich mir ein Script geschrieben das so ausssieht:
#!/bin/bash
chmod 770 `find . -type d`
chmod 660 `find . -type f`
Leider haben aber einige der Dateien Leerstellen im Namen. Chmod mein aber dass nach jeder Leerstelle eine neue Datei kommt. Gibt es eine Möglichkeit chmod das abzugewöhnen?

Danke

Philipp

Sebastian Ude

Re: find, chmod und Leerstellen

#2 Post by Sebastian Ude »

Ändere dein Script doch einfach in:

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">#!/bin/bash

chmod 770 "`find . -type d`"
chmod 660 "`find . -type f`"</font><hr></pre></blockquote>

So sollte es funktionieren.

Sebastian Ude

Re: find, chmod und Leerstellen

#3 Post by Sebastian Ude »

Uups ... Denkfehler ...

Du hast sicherlich schon mehrere Dateien / Verzeichnisse <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">.

Probiers mal mit:

find . -type d -exec chmod 770 \{} /;
find . -type f -exec chmod 660 \{} /;


PS:

Der Schrägstrich vor dem Semikolon sollte ein Backslash sein (das Board hätte den Backslash sonst einfach geschluckt) - bitte bei dir ersetzen.

Sebastian Ude

Re: find, chmod und Leerstellen

#4 Post by Sebastian Ude »

Und der Backslash vor der ersten geschweiften Klammer sollte da gar nicht hin ...

*mpfl*

aebi
Posts: 41
Joined: 02. Dec 1999 10:32
Location: Kastanienbaum

Re: find, chmod und Leerstellen

#5 Post by aebi »

Das war's tausend dank

Philipp

Jochen

Re: find, chmod und Leerstellen

#6 Post by Jochen »

Das alte Problem... Keiner kennt mehr xargs! <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

#define KLUGSCHEISSER 1

Wenn Du 1000 Verzeichnisse/Dateien hast, wird auch 1000mal chmod aufgerufen, für jeweils <i>eine</i> Datei. Suboptimal...

Mach's besser so:

find . -type f -print0 | xargs -0 chmod 660

Analog für Verzeichnisse. find bastelt die Liste der Datein zusammen, gibt sie mittels Null-Byte terminiert an xargs weiter, der wiederum ein chmod-Kommandos mit all den Argumenten zusammenbastelt. Macht 3 Prozesse statt 1001 bei 1000 Dateien bzw. Verzeichnissen. Besser, oder?

#define KLUGSCHEISSER 0

Sorry.

Jochen

Sebastian Ude

Re: find, chmod und Leerstellen

#7 Post by Sebastian Ude »

@ Jochen

Ich wusste nicht, dass die xargs-Methode auch bei Datei / Verzeichnisnamen mit Leerzeichen funktioniert.

Tut sie aber anscheinend, mit -0 und -print0 auf der find-Seite ...

Danke, wieder was dazu gelernt.


PS:

Klugscheisser <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">

Post Reply