PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : xargs - wie?



jrk
11-05-2001, 13:12
Hallo alle!
Ich habe letztens ein bisschen mit shell-scripten gespielt um ein script zu basteln das die permissions auf meinem File-Server richtig setzt. Da hatte ich das Problem Dateien die find zutage gefördert hat an die entsprechenden tools zu übergeben; beim durchstöbern anderer scripts bin ich immer wieder über "xargs" gestolpert, das anscheinend das macht was ich brauche : dateien bzw pfade aus einem programm an ein anderes übergeben!
Der Punkt dabei ist, ich werde aus der Dokumentation von xargs nicht schlau.. ):
Kennt sich damit jemand aus oder eine gute Dokumentation/Howto??

Danke (:

--
jakob

mightymike99
11-05-2001, 21:07
Wie waer's damit?
RECHTEDATEI:"securityfile.txt"
<code>
/etc 755
/etc/modules.conf 600
/etc/shadow 600
</code>

SCRIPT:
<code>
FILE="securityfile.txt"
LINE_NUMBER=1
LINES=$(wc -l $FILE)
while [ LINE_NUMBER -le $LINES ]
do
LINE=$(sed -e ${LINE_NUMBER}p $FILE)
set $LINE
MyPath=$1
MyPrivCode=$2
chmod $MyPrivCode $MyPath
((LINES= $LINES + 1))
done
</code>

... chmod hat noch einen Schalter fuer rekursive Ausführung

... mal abgesehen davon das es schon andere solche scripte gibt, deswegen die dateien security.easy usw in /etc

Gruß Tobias

[ 12. Mai 2001: Beitrag editiert von: mightymike99 ]

jrk
12-05-2001, 17:08
Danke! Das Script ist schonmal gar nicht schlecht, aber suchte eigentlich eine Dokumentation über xargs! (;

--
jakob

Manfred-B
17-05-2001, 22:30
Hallo
Ja die manpage von xargs ist etwas verwirrend. Dabei ist es doch recht einfach z.B.:

<pre>file $(find /usr -type f) | grep 'shell'
</pre>find findet hier so viele dateien, daß eine kommandosubstitution hier mehr als 128KB (die Grenze einer Kommandozeile der Bash) resultieren würde -> die Argumentenliste ist zu lang -> Abbruch

xargs umgeht diese Grenze:
<pre>find /usr -type f | xargs file | grep 'shell'
</pre> findet alle shellskripte (nur so als Beispiel)
Grüße
Manfred-B