Bash Scripting: Fallen
Mai 16, 2017 — 13:46

Hier kommen Fallen hin, über welche ich beim Scripten mit bash gestolpert bin:

find und xargs
Ich wollte aus einem Pfad mit vielen Unterordnern alle Dateien löschen, aber die Unterordner behalten.
Getestet wurde mit „ls -l“ anstatt einem „rm“, da ich nichts falsches löschen wollte.

Heraus kam folgender Befehl:

find /hier/ein/Pfad/ -type f | xargs ls -l

Dies funktioniere solange sich Dateien in dem Verzeichnis oder einem Unterverzeichnis befanden.
Ohne Dateien wurde das Home-Verzeichnis des Nutzers aufgelistet. „rm“ hätte sich über einen fehlenden Parameter beschwert.
„find“ liefert in diesem Falle kein Ergebnis an „xargs“, so dass „ls“ bzw. „rm“ ohne Parameter ausgeführt wird.

Ich habe mir anders beholfen:

find /hier/ein/Pfad/ -type f -exec /bin/ls -l {} \;