Linux: Mehrere Ordner bei "find"-Suche ausschließen
Advertisement
Szenario: Ich will meinen Server auf Dateien, die größer als 100MB sind durchsuchen. Dabei will ich allerdings ein paar Ordner auslassen, da diese auf andere Platten gemountet oder NFS-Shares sind. Eigentlich eine recht einfache Anforderung, so dachte ich. Allerdings habe ich etwa eine Viertelstunde gebraucht, um den Befehl hinzubekommen, daher hier eine kurze Notiz dazu.
Für diesen Zweck wird der prune-Befehl aus dem find-Repertoire genutzt. Prune ist immer wahr, verändert also das Ergebnis eines Checks nicht und bewirkt, dass ein Ordnerbaum nicht durchsucht wird.
Beispiel:
Wir suchen im ganzen Rootsystem nach der Datei foo.bar. Ist der durchsuchte Name nfsshare, wird alles darunterliegende ignoriert, dieser Ordner also nicht durchsucht.
Und nun das ganze mit mehreren Ordnern, der Größe und einem du -h für gefundene Dateien:
Vermutlich ginge das ganze etwas schöner mit Pfadangabe via wholename anstelle von name, aber für meinen Zweck hat es so gereicht.
Eine schöne Erklärung für prune auf Stackoverflow hat mir dabei sehr weitergeholfen.