Ich habe einen Ordner, der Unterordner enthält und einige Ordner enthält .sh-Datei. Ich möchte meine .sh-Datei in diesem Pfad ausführen, wo ich eine .sh-Datei sehe. Ich versuchterekursiv ".sh" -Datei finden und dann meine .sh-Datei auf diesem Pfad ausführen
find . -name '*.sh'
./folder 1/folder 2/run.sh
./folder3/run.sh
./folder 4/run.sh
./folder5/run.sh
Diese Suchfunktion funktioniert ordnungsgemäß. Jetzt habe ich eine andere .sh-Datei, die ich auf .sh Dateipfad ausführen möchte. Ich versuchte
find . -name '*.sh' /home/cool/Desktop/followup.sh {} ;
wo followup.sh ist meine Datei. Der Befehl wird im aktuellen Verzeichnis ausgeführt. aber es wird nicht auf run.sh Dateipfad ausgeführt.
Ich bin neu im Bash-Scripting. Welchen Befehl oder welche Befehle würde ich ausgeben? Beachten Sie, dass Leerzeichen in Ordnername vorhanden sind.
Im Grunde haben Sie die '-exec' verpasst: Es sollte' finden. -name '* .sh' -exec /home/cool/Desktop/followup.sh {} \; ' – hek2mgl
Wenn Sie das Skript innerhalb des Pfades dieser Datei ausführen möchten, verwenden Sie' -execdir' anstelle von ' -exec': 'finden. -name '* .sh' -execdir /home/cool/Desktop/followup.sh {} \; ' – hek2mgl
@ hek2mgl Danke. execdir hat funktioniert. – user8109