Linux 15.070 Themen, 107.540 Beiträge

konsolenbefehl

ghartl1 / 6 Antworten / Baumansicht Nickles

hallo,

habe irgendwo diesen befehl herauskopiert

tut alle dateien rekursiv das ausführungsbit entziehen (in jedem ordner)

find ordner -type f -exec chmod a-x "{ }" ";"

was bedeuten die klammer und der strichpunkt?

gruss günter

bei Antwort benachrichtigen
KarstenW ghartl1 „konsolenbefehl“
Optionen

Ich habe mal schnell in der manpage von find gelesen und das hier gefunden:

"man find"

....
Aktionen
-exec Kommando;
führt das Kommando aus; die Aktion ist wahr, wenn das Kommando einen Status
von Null liefert; alle auf den Kommandonamen folgenden Argumente bis zu einem
Semikolon ; werden als Kommandozeilenargumente für das Kommando interpretiert;
das Semikolon kann nicht weggelassen werden, und es muss durch mindestens ein
Whitespace von der letzten Option getrennt werden; die Konstruktion {} wird
durch den Pfadnamen der Datei ersetzt; die Klammern und das Semikolon müssen
in der Kommandozeile für find quotiert werden, damit sie nicht von der Shell
bearbeitet werden.

.....
Quotierung kann man mit einem Backslash oder mit Hochkommas machen.
Quotierung ist notwendig um die Bedeutung von Sonderzeichen in der Shell (bash) auszuschalten.




Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
d-oli ghartl1 „konsolenbefehl“
Optionen
  -exec command ;
Execute command; true if 0 status is returned. All following
arguments to find are taken to be arguments to the command until
an argument consisting of `;' is encountered. The string `{}'
is replaced by the current file name being processed everywhere
it occurs in the arguments to the command, not just in arguments
where it is alone, as in some versions of find. Both of these
constructions might need to be escaped (with a `\') or quoted to
protect them from expansion by the shell. See the EXAMPLES sec-
tion for examples of the use of the `-exec' option. The speci-
fied command is run once for each matched file. The command is
executed in the starting directory. There are unavoidable
security problems surrounding use of the -exec option; you
should use the -execdir option instead.
Quelle: man find oder http://unixhelp.ed.ac.uk/CGI/man-cgi?find
d-oli


      
Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
ghartl1 d-oli „ -exec command Execute command true if 0 status is returned. All following...“
Optionen

okay is ma a bissl zu viel jetzt..werds mir am abend nochmal zu gemüte ziehen

danke einmal

gruss günter

bei Antwort benachrichtigen
KarstenW ghartl1 „okay is ma a bissl zu viel jetzt..werds mir am abend nochmal zu gemüte ziehen...“
Optionen

Die Klammern werden bei der Ausführung des exec Kommandos (chmod in diesem Fall ) durch den eigentlichen Dateinamen ersetzt.
Das Semikolon und die Klammern haben in der Shell eine spezielle Bedeutung und diese Bedeutung muß durch Hochkommas oder durch Voranstellen eines Backslashs ausgeschaltet werden.
Solche Klammern werden bei regulären Ausdrücken verwendet und das Semikolon dient zum Trennen von Befehlen.
Beispiel:

if [ $? == 0 ] ; then
echo
echo " Letzer Rückgabewert war 0"
echo
fi

Reguläre Ausdrücke dienen bei Unix und Linux zum Ersetzen von Zeichen und / oder Strings bei einem Kommando oder Befehl:

http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

PS: In dem Buch Unix-Shellprogrammierung von Rainer Krienke wird sehr schön erklärt was alles der Reihe nach passiert, nach dem man einen Befehl in der Shell BASH eingegeben hat und die ENTER Taste gedrückt wurde. Kann ich empfehlen. Man kommt früher oder später nicht um Shellprogrammierung herum:

http://www.amazon.de/Shell-Programmierung-Grundlagen-Werkzeuge-praktische-Skripte/dp/3446407375/ref=sr_1_2/028-6113415-2839752?ie=UTF8&s=books&qid=1187631975&sr=8-2





Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
ghartl1 KarstenW „Die Klammern werden bei der Ausführung des exec Kommandos chmod in diesem Fall...“
Optionen

okay,danke

glaube werde um literatur dazu nicht wegkommen


gruss günter

bei Antwort benachrichtigen
KarstenW ghartl1 „okay,danke glaube werde um literatur dazu nicht wegkommen gruss günter“
Optionen

Die Optionen für die Unixdienstprogramme wie find, sed, grep, touch wc us.w kann man immer in den Manpages (Manualpages) nachlesen.
Einfach nur den Befehl "man Unixdienstprogramm...." eingeben.
Sehr viele Manpages sind schon ins Deutsche übersetzt, aber leider nicht immer ganz aktuell.

Vielleicht hilft dieses Online Buch um sich einen Überblick über alle Unixdienstprogramm zu verschaffen:

http://www.linux-ag.de/linux/LHB/LHB.html

PS: Linux ist nicht als Unix von The Open Group zertifiziert, soll sehr Unix-Ähnlich sein da sehr viele Dinge vom POSIX Standard übernommen wurden.

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen