Christian Seiler: Recursive Suche u. Linux

Beitrag lesen

Hallo,

find ./ -name "*.php" -exec ls -al "{}" ;

Hier wäre übrigens auch eine xargs-Lösung besser, weil find hier sonst für jeden (!) Eintrag ein ls -al ausführt, während xargs nur einen ls-Prozess startet (bzw. mehrere, wenn es extrem viele Dateien werden).

Wenn man nach dem Änderungsdatum auch noch sortieren möchte kann man es so machen:
find . -name *.php | xargs ls -rtl

Dieses Konstrukt hat zwei Probleme:

  1. Wenn im aktuellen Verzeichnis .php-Dateien existieren, dann versagt es, weil *.php bereits von der Shell expandiert wird. Daher quoten: "*.php".

  2. Wenn ein Dateiname Leerzeichen enthält, dann fliegt das auch auf die Schnauze. Besser man nimmt 0-Bytes als Trenner (-print0 für find, -0 für xargs).

Beides zusammen:

find . -name "*.php" -print0 | xargs -0 ls -rtl

Viele Grüße,
Christian