Notiz: find

Ich kanns mir einfach nicht merken:

find -exec vs. find | xargs

find -type d -exec chmod 755 {} \;

Langsam: fur jede gefundene Datei wird chmod einzeln aufgerufen

find -type d -print0 | xargs -0 chmod 755

Schneller: chmod wird nur einmal mit vielen Argumenten gestartet

von hier

Deine IP ist:
38.107.179.207

3 Kommentare

  • geschrieben am Februar 1, 2005 um 13:03 Uhr | Permalink

    Also ich mach das immer so:

    chmod 777 `find . -type d`

    wobei das wahrscheinlich am ehesten der ersten Variante entspricht. Mich wurde in dem Zusammenhang noch der Zeitunterschied zwischen den beiden
    von dir geschilderten Varianten interessieren.

  • geschrieben am Februar 1, 2005 um 13:29 Uhr | Permalink

    Das ist ganz einfach nachzuvollziehen. Bei Variante eins wird fur jedes gefundene Objekt einmal ein chmod gemacht, das entspricht:

    $ chmod 755 ordner1
    $ chmod 755 ordner2
    $ chmod 755 ordner3

    Bei Variante zwei, sieht das so aus:

    $ chmod 755 {ordner1,ordner2,ordner3}

    Chmod wird nur einmal aufgrufen mit den Objekten als Beigabe. Das ist also wesentlich effektiver.

  • geschrieben am Februar 1, 2005 um 22:08 Uhr | Permalink

    Es ginge auch noch folgendes:

    chmod -R a+rX ordner

    Das X setzt dann das execute-Flag auf ein File, wenn schon ein anderes execute-Flag vorhanden ist. Da soll nochmal einer sagen, das der
    symbolische chmod-Aufruf nur fur Anfanger ist. ;-)