[gelöst] find mit -exec im Skript -> fehlendes Argument
[gelöst] find mit -exec im Skript -> fehlendes Argument
Hallo,
bin neu in der Linuxgemeinde und versuche mich gerade an einem Skript zum Rechte verteilen.
Soweit funktioniert das auch aber wenn ich den Befehl nutze
find /mein/Verzeichnis -type d -exec chmod 0755 {} \;
bekomme ich:
find: Fehlendes Argument für "-exec"
Bein normaler Shell-eingabe klappt das so.
Ich könnte mir vorstellen,daß die Klammern nicht zu find interpretiert werden, allerdings weiss ich auch
nicht wie ich das lösen könnte.
Bei der Suche im Forum und der Wiki habe ich nichts passendes gefunden (evtl. nicht die passende Suchvariablen).
Ich würde mich freuen wenn mir jemand weiterhelfen könnte.
bin neu in der Linuxgemeinde und versuche mich gerade an einem Skript zum Rechte verteilen.
Soweit funktioniert das auch aber wenn ich den Befehl nutze
find /mein/Verzeichnis -type d -exec chmod 0755 {} \;
bekomme ich:
find: Fehlendes Argument für "-exec"
Bein normaler Shell-eingabe klappt das so.
Ich könnte mir vorstellen,daß die Klammern nicht zu find interpretiert werden, allerdings weiss ich auch
nicht wie ich das lösen könnte.
Bei der Suche im Forum und der Wiki habe ich nichts passendes gefunden (evtl. nicht die passende Suchvariablen).
Ich würde mich freuen wenn mir jemand weiterhelfen könnte.
Zuletzt geändert von Jenaark am 09.02.2014 08:01:35, insgesamt 1-mal geändert.
Re: find mit -exec im Skript -> fehlendes Argument
Hast du die Befehlszeile im Script genauso stehen? So eine Fehlermeldung kann kommen, wenn vor dem "\;" das Leerzeichen fehlt
Re: find mit -exec im Skript -> fehlendes Argument
sicher, dass du nicht find /mein/Verzeichnis -type d -exec chmod 0755 {} ; in das script geschrieben hast?
rot: Moderator wanne spricht, default: User wanne spricht.
Re: find mit -exec im Skript -> fehlendes Argument
ich habe definitiv den \ drin und ein leerzeichen davor - (2x neu eingegeben) - das verwundert mich daran ja so
Re: find mit -exec im Skript -> fehlendes Argument
probiermal anführungszeichen...
Welche shell benutzt du?
Welche shell benutzt du?
rot: Moderator wanne spricht, default: User wanne spricht.
Re: find mit -exec im Skript -> fehlendes Argument
benutze bash-shell -
Anführungszeichen nur um die klammern?
Anführungszeichen nur um die klammern?
Re: find mit -exec im Skript -> fehlendes Argument
So.
Aber ich habe gerade mal dein befehl per copy und paste eingefügt und hier tut's
Code: Alles auswählen
find . -type d -exec chmod 0755 {} ";"
rot: Moderator wanne spricht, default: User wanne spricht.
Re: find mit -exec im Skript -> fehlendes Argument
also in meinem Skript bekomme ich nur die oben angegebene Fehlermeldung.
habe nochmal die zeile gelöscht und neu eingegeben -> keine Besserung (auch nicht mit Anführungszeichen)
Aber dennoch Danke für Eure Mühen
habe nochmal die zeile gelöscht und neu eingegeben -> keine Besserung (auch nicht mit Anführungszeichen)
Aber dennoch Danke für Eure Mühen
Re: find mit -exec im Skript -> fehlendes Argument
Steht diese in der Shebang-Zeile des Scripts?Jenaark hat geschrieben:benutze bash-shell
Code: Alles auswählen
#!/bin/bash
Re: find mit -exec im Skript -> fehlendes Argument
Steckt das vielleicht innerhalb eines eval-Konstruktes? Dann stript die Shell im ersten Durchgang das \ und interpretiert im naechsten Durchgang das ;. find bekommt das ; dann gar nicht zu sehen und wuerde sich wie oben verhalten. Evtl werden auch die geschweiften Klammern {} zu irgendwas expandiert, aber das glaub' ich nicht so recht.
Verwende mal set -x ein paar Zeilen davor (oder bash -x deinskript) und poste den relevanten Debugging-Output hier.
Gruss Cae
Verwende mal set -x ein paar Zeilen davor (oder bash -x deinskript) und poste den relevanten Debugging-Output hier.
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: find mit -exec im Skript -> fehlendes Argument
Seltsam finde ich nur, daß es auch passierte als ich das Semikolon in Anführungszeichen gesetzt habe.
Nein, nführungszeichen gruppieren. Du weißt also nochmal explizit darauf hin, dass ; und der Kommentar als eines verstanden werden sollen.
Nein, nführungszeichen gruppieren. Du weißt also nochmal explizit darauf hin, dass ; und der Kommentar als eines verstanden werden sollen.
Re: find mit -exec im Skript -> fehlendes Argument
Die werden von der Shell entfernt. find sieht dann ;#allen als einen Parameter.Seltsam finde ich nur, daß es auch passierte als ich das Semikolon in Anführungszeichen gesetzt habe.
Re: [gelöst] find mit -exec im Skript -> fehlendes Argument
Ok. Danke das werde ich mir mal gut merken für weitere Tests