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
find, chmod und Leerstellen
Re: find, chmod und Leerstellen
Ä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.
<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.
Re: find, chmod und Leerstellen
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.
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.
Re: find, chmod und Leerstellen
Und der Backslash vor der ersten geschweiften Klammer sollte da gar nicht hin ...
*mpfl*
*mpfl*
Re: find, chmod und Leerstellen
Das war's tausend dank
Philipp
Philipp
Re: find, chmod und Leerstellen
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
#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
Re: find, chmod und Leerstellen
@ 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">
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">