Heim  >  Artikel  >  php教程  >  Ubuntu-Dateisuchmethode (Befehl „find')

Ubuntu-Dateisuchmethode (Befehl „find')

高洛峰
高洛峰Original
2016-12-14 17:23:381344Durchsuche

Allgemeines Format: find pathname -options [-print -exec -ok]
Beispiel:
find / -name filename Suche nach einer Datei mit dem Namen filename im Stammverzeichnis. Name Dateiname
find /etc -name *s* Nach Dateien mit s im Verzeichnis suchen
find /etc -name *S Nach Dateien suchen, die mit s im Verzeichnis enden
find /etc -name s* Suchen Sie im Verzeichnis nach Dateien, die mit s beginnen.
find / -amin -10 Suchen Sie nach Dateien, auf die in den letzten 10 Minuten im System zugegriffen wurde.
find / -atime -2 Suchen Sie nach Dateien, auf die in den letzten 48 Stunden im System zugegriffen wurde
find / -empty Leere Dateien oder Ordner im System suchen
find / -group Gruppenname Dateien suchen, die zu Gruppenname im System gehören
find / -mmin -5 Dateien finden, die in den letzten 5 Minuten geändert wurden Systemdateien
find / -mtime -1 Dateien suchen, die in den letzten 24 Stunden im System geändert wurden
find /-nouser Dateien suchen, die kostenlosen Benutzern im System gehören
find / -user Benutzername Dateien im System suchen Systemdateien, die zum Benutzernamen gehören
find / -ctime -1 Dateien suchen, deren Status in den letzten 24 Stunden im System geändert wurde
find / -fstype type Den Dateityp im System finden?
find / -user user1name -or -user user2name Finde Dateien, die zu user1name oder user2name im System gehören.
find / -user user1name -and -user2name Finde Dateien, die sowohl zu user1name als auch zu user2name in den Systemdateien gehören.
1. Das Format des Suchbefehls lautet:
find pathname -options [-print -exec -ok ...]
2 Befehl;
Pfadname: Der vom Suchbefehl durchsuchte Verzeichnispfad. Verwenden Sie beispielsweise ., um das aktuelle Verzeichnis darzustellen, und /, um das Stammverzeichnis des Systems darzustellen.
-print: Der Befehl „find“ gibt passende Dateien in der Standardausgabe aus.
-exec: Der Befehl „find“ führt den durch diesen Parameter angegebenen Shell-Befehl für die passende Datei aus. Der entsprechende Befehl hat die Form „Befehl“ { } /;, achten Sie auf das Leerzeichen zwischen { } und /;.
-ok: hat die gleiche Funktion wie -exec, außer dass es den durch diesen Parameter angegebenen Shell-Befehl in einem sichereren Modus ausführt. Vor der Ausführung jedes Befehls wird der Benutzer aufgefordert, zu bestätigen, ob er ausgeführt werden soll.
3. Befehlsoption
-name
Suchen nach Dateien nach Dateinamen.
-perm
Dateien anhand ihrer Berechtigungen finden.
-prune
Verwenden Sie diese Option, um zu verhindern, dass der Suchbefehl im aktuell angegebenen Verzeichnis sucht. Wenn auch die Option - Depth verwendet wird, wird -prune vom Suchbefehl ignoriert.
-user
Suchen Sie nach Dateien basierend auf ihrem Besitzer.
-group
Suchen Sie Dateien anhand der Gruppe, zu der sie gehören.
-mtime -n +n
Dateien anhand ihrer Änderungszeit finden. -n bedeutet, dass die Dateiänderungszeit innerhalb von n Tagen liegt, und +n bedeutet, dass die Dateiänderungszeit in n Tagen liegt . Der Befehl find verfügt auch über die Optionen -atime und -ctime, diese sind jedoch mit der Option -m time identisch.
-nogroup
Suchen Sie nach Dateien, die keine gültige Gruppe haben, zu der sie gehören, d. h. die Gruppe, zu der die Datei gehört, existiert nicht in /etc/groups.
-nouser
Suchen Sie nach Dateien ohne gültigen Besitzer, d. h. der Besitzer der Datei existiert nicht in /etc/passwd.
-newer file1 ! file2
Findet Dateien, deren Änderungszeit neuer als Datei1, aber älter als Datei2 ist.
-type
Sucht nach Dateien eines bestimmten Typs, wie zum Beispiel:
b – Gerätedateien blockieren.
d – Verzeichnis.
c – Zeichengerätedatei.
p – Pipe-Datei.
l – symbolische Linkdatei.
f – normale Datei.
-size n: [c] Dateien mit einer Dateilänge von n Blöcken finden. Bei c wird die Dateilänge in Bytes angegeben.
-Tiefe: Suchen Sie bei der Suche nach Dateien zuerst nach Dateien im aktuellen Verzeichnis und dann in seinen Unterverzeichnissen.
-fstype: Suchen Sie nach Dateien, die sich in einem bestimmten Dateisystemtyp befinden. Diese Dateisystemtypen finden Sie normalerweise in der Konfigurationsdatei /etc/fstab. Diese Konfigurationsdatei enthält Informationen über das Dateisystem in diesem System.
-mount: Überqueren Sie bei der Suche nach Dateien nicht den Mountpunkt des Dateisystems.
-follow: Wenn der Suchbefehl auf eine symbolische Linkdatei stößt, folgt er der Datei, auf die der Link verweist.
-cpio: Verwenden Sie den Befehl cpio für übereinstimmende Dateien, um diese Dateien auf einem Bandgerät zu sichern.
Außerdem der Unterschied zwischen den folgenden drei:
-amin n
Dateien suchen, auf die in den letzten N Minuten im System zugegriffen wurde
-atime n
Dateien finden, auf die in den letzten n Minuten zugegriffen wurde* 24 Stunden im System
-cmin n
Dateien finden, deren Dateistatus in den letzten N Minuten im System geändert wurde
-ctime n
Dateien finden, deren Dateistatus in den letzten N Minuten geändert wurde n*24 Stunden im System
-mmin n
Dateien finden, deren Dateidaten in den letzten N Minuten im System geändert wurden
-mtime n
Dateien finden, deren Dateidaten geändert wurden die letzten n*24 Stunden im System
4. Verwenden Sie exec oder ok, um Shell-Befehle auszuführen
Bei Verwendung von find müssen Sie nur die gewünschte Operation in eine Datei schreiben und können exec verwenden, um mit find zusammenzuarbeiten . Dies ist sehr praktisch. In einigen Betriebssystemen ist nur die Option -exec zum Ausführen von Befehlen wie ls oder ls - l zulässig. Die meisten Benutzer nutzen diese Option, um alte Dateien zu finden und zu löschen. Es wird empfohlen, vor der tatsächlichen Ausführung des Befehls rm zum Löschen von Dateien am besten den Befehl ls zu verwenden, um einen Blick darauf zu werfen und zu bestätigen, dass es sich um die zu löschenden Dateien handelt.
Auf die Option exec folgt der auszuführende Befehl oder das auszuführende Skript, dann ein Paar aus {}, einem Leerzeichen und einem / und schließlich einem Semikolon. Um die Exec-Option nutzen zu können, muss auch die Print-Option verwendet werden. Wenn Sie den Befehl find überprüfen, werden Sie feststellen, dass der Befehl nur den relativen Pfad und Dateinamen vom aktuellen Pfad ausgibt.
Zum Beispiel: Um den Befehl ls -l zum Auflisten der übereinstimmenden Dateien zu verwenden, können Sie den Befehl ls -l in die Option -exec des Befehls find einfügen
# find -l { } /;
-rw-r--r-- 1 Wurzel Wurzel 34928 2003-02-25 ./conf/httpd.conf
-rw-r--r-- 1 Wurzel Wurzel 12959 2003-02-25 ./conf/magic
-rw-r--r-- 1 root root 180 2003-02-25 ./conf.d/README
Im obigen Beispiel stimmt der Suchbefehl überein die Datei im aktuellen Verzeichnis Alle normalen Dateien und listen Sie sie mit dem Befehl ls -l mit der Option -exec auf.
Suchen Sie Dateien im Verzeichnis /logs, die vor mehr als 5 Tagen geändert wurden, und löschen Sie sie:
$ find logs -type f -mtime +5 -exec rm { } /;
Denken Sie daran: in der Shell Bevor Sie Dateien löschen, sollten Sie zunächst die entsprechenden Dateien überprüfen. Der abgesicherte Modus mit der Option -exec kann verwendet werden, wenn Befehle wie mv oder rm verwendet werden. Sie werden vor der Bearbeitung jeder übereinstimmenden Datei aufgefordert.
Im folgenden Beispiel findet der Befehl „find“ alle Dateien im aktuellen Verzeichnis, deren Dateinamen mit .LOG enden und deren Änderungszeit mehr als 5 Tage zurückliegt, und löscht sie, gibt jedoch vor dem Löschen nur eine Aufforderung aus.
$ find . -name "*.conf" -mtime +5 -ok rm { } /;
< rm ... ./conf/httpd.conf > Um eine Datei zu löschen, drücken Sie n, um sie nicht zu löschen.
Jede Befehlsform kann mit der Option -exec verwendet werden.
Im folgenden Beispiel verwenden wir den Befehl grep. Der Befehl find sucht zunächst nach allen Dateien mit dem Namen „passwd*“, wie z. B. passwd, passwd.old, passwd.bak, und führt dann den Befehl grep aus, um zu sehen, ob sich in diesen Dateien ein sam-Benutzer befindet.
# find /etc -name "passwd*" -exec grep "sam" { } /;
sam:x:501:501::/usr/sam:/bin/bash

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn