find
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| find [2017-10-24 09:58:34] – [find] manfred | find [2024-03-20 15:57:54] (aktuell) – [Dateien nach alter suchen] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== find ====== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | Hier zeige ich nur ein paar erprobte Beispiele. | ||
| + | |||
| + | ---- | ||
| + | mit dieser Kommandozeile werden alle Dateien und Verzeichnisse angezeigt, | ||
| + | dessen __Benutzer__ und __Gruppe__ nicht " | ||
| + | > find ${ZIELVERZ} ! -user www-data -o ! -group www-data | ||
| + | |||
| + | ...und hiermit werden die Dateien nicht angezeigt, sondern direkt angepasst: | ||
| + | > find ${ZIELVERZ} ! -user www-data -o ! -group www-data -exec chown www-data: | ||
| + | |||
| + | ---- | ||
| + | mit dieser Kommandozeile kann man die __Dateien__ finden und deren Rechte korrigieren, | ||
| + | die nicht von allen Benutzern lesbar sind: | ||
| + | > find /var/www/ -type f -not -perm -444 | ||
| + | > find /var/www/ -type f -not -perm -444 -exec chmod 0644 {} \; | ||
| + | |||
| + | mit dieser Kommandozeile kann man die __Verzeichnisse__ finden und deren Rechte korrigieren, | ||
| + | die für seinen Benutzer nicht beschreibbar sind: | ||
| + | > find /var/www/ -type d -not -perm -700 | ||
| + | > find /var/www/ -type d -not -perm -700 -exec chmod 0755 {} \; | ||
| + | |||
| + | > find * -type d -perm u=rwx, | ||
| + | > find * -type f -perm u=rw, | ||
| + | |||
| + | [[https:// | ||
| + | > find /var/www/ \( -type d -exec chmod 755 {} + \) -o \( -type f -exec chmod 644 {} + \) | ||
| + | |||
| + | ---- | ||
| + | so listet man alle Dateien aus diesem Verzeichnis auf, die maximal einen Tag lang nicht mehr geöffnet wurden (jünger als 1 Tag sind): | ||
| + | > find . -type f -atime -1 | ||
| + | |||
| + | so listet man alle Dateien aus diesem Verzeichnis auf, die mindestens 7 Tage lang nicht mehr geöffnet wurden: | ||
| + | > find . -type f -atime +7 | ||
| + | |||
| + | alles was länger als 6 Minuten nicht mehr verändert wurde, löschen | ||
| + | > find */ -type f -mmin +6 -exec /bin/rm -rf {} \; | ||
| + | |||
| + | alles was länger als 100 Tage nicht mehr verändert wurde, löschen | ||
| + | > find / | ||
| + | |||
| + | so listet man alle Dateien aus diesem Verzeichnis auf, die mindestens 7 Tage lang nicht mehr geöffnet wurden oder vor mindestens 4 Tagen verändert wurden: | ||
| + | > find . -type f -atime +7 -o -mtime +4 | ||
| + | |||
| + | so listet man alle Dateien aus diesem Verzeichnis auf, die mindestens 7 Tage lang nicht mehr geöffnet wurden und die Zeichenfolge " | ||
| + | > find / -type f -atime +7 -name ' | ||
| + | |||
| + | ---- | ||
| + | atime/ | ||
| + | |||
| + | Will man veraltete Dateien finden, durchsucht man natürlich die " | ||
| + | Hier ein paar Beispiele... | ||
| + | |||
| + | alle ausführbaren Dateien ausgeben lassen: | ||
| + | > find /mnt -type f -executable -print | ||
| + | |||
| + | Zugriffsrechte auf alle Verzeichnisse setzen: | ||
| + | > find /mnt -type d -execdir chmod 0775 ' | ||
| + | |||
| + | Zugriffsrechte auf alle Dateien setzen: | ||
| + | > find /mnt -type f -execdir chmod 0664 ' | ||
| + | |||
| + | |||
| + | ==== Dateien nach alter suchen ==== | ||
| + | |||
| + | alle Dateien im ''/ | ||
| + | > find /tmp/ -type f -mtime +7 -print | ||
| + | |||
| + | alle Dateien im ''/ | ||
| + | > find /tmp/ -maxdepth 2 -type f -mmin +60 -print | ||
| + | |||
| + | alle Dateien im ''/ | ||
| + | > find /tmp/ -maxdepth 2 -type f -mmin -60 -print | ||
| + | |||
| + | |||
| + | ==== bestimmte Unterverzeichnisse löschen ==== | ||
| + | |||
| + | alle ''/ | ||
| + | > time find /tmp/ -maxdepth 2 -type d -mmin +60 -print | fgrep /tmp/tmp. | xargs rm -fr ${1} | ||
| + | |||
| + | |||
| + | ==== leere Unterverzeichnisse löschen ==== | ||
| + | |||
| + | rekursiv: | ||
| + | > find . -mindepth 1 -type d -empty -depth -exec rmdir {} \; | ||
| + | |||
| + | rekursiv, wenn es besonders viele sind: | ||
| + | > find . -mindepth 1 -type d -empty -depth -print | xargs rmdir | ||
| + | |||
| + | leeren Unterverzeichnisse mit ''// | ||
| + | |||
| + | |||
| + | ==== find mit REGEX verwenden ==== | ||
| + | |||
| + | * [[http:// | ||
| + | |||
| + | die REGEX muß für die komplette Zeile formuliert werden, sonst geht es nicht: | ||
| + | > find . -regex ' | ||
| + | |||
| + | mit REGEX vom Typ " | ||
| + | > find . -regextype sed -regex ' | ||
| + | |||
