"Argument list too long" auf embedded Sytem

03/10/2008 - 10:52 von Thorsten Steinbrenner | Report spam
Hallo!

Ich habe eine große Menge Daten (incl. Dateien mit Leer- und
Sonderzeichen) auf einen NAS-Server (Linux mit busybox) kopiert. Die
Besitzer und Rechte stimmten nicht, also wollte ich das kurz mit

$ find . -type d -print0 | xargs -0 chmod

àndern. Dummerweise kennt das find dieser Kiste kein "-print0" (und auch
kein "find -exec"), was ich aber für Dateinamen mit Leer- und
Sonderzeichen benötigen würde. Grrrr...

Zweiter Versuch dann mit einem Shellskript:

#!/bin/sh

for file in "$( find . -type d )"
do
chmod ...
chown ...
done

Dieses Skript bricht mit einem "Argument list too long" ab. Jetzt weiss
ich nicht mehr weiter :-(

Gesucht ist ein Skript, das durch einen großen Verzeichnisbaum iteriert
(incl. Dateien mit Leer- und Sonderzeichen) und entsprechend Rechte und
Besitzer von Dateien/Verzeichnissen àndern kann, ohne die Verwendung von
"find -print0" bzw. "xargs -0", da diese nicht vorhanden sind.

Könnte mir bitte jemand auf die Sprünge helfen? Danke!!

Thorsten

Es besteht die Möglichkeit daß Computer einmal weniger als
1,5 Tonnen wiegen (Aus "Popular Mechanics", 1949)
 

Lesen sie die antworten

#1 Markus Steinborn
03/10/2008 - 11:39 | Warnen spam
Hallo Juergen,

On Fri, 3 Oct 2008, Juergen Ilse wrote:

Thorsten Steinbrenner wrote:
for file in "$( find . -type d )"



Wie waere es statt dessen mit:

for file in *; do ...

... und dann ggfs. im Body der Schleife pruefen, ob es sich um ein
Verzeichnis handelt ...



Du hast schon gemerkt, dass im Vergleich zu dem Befehl des OPs die
Rekursivitàt fehlt?

Grüße

Markus

Ähnliche fragen