Heim >php教程 >PHP开发 >Befehl finden

Befehl finden

高洛峰
高洛峰Original
2016-12-14 17:04:181220Durchsuche

Der Suchbefehl wird verwendet, um Dateien im angegebenen Verzeichnis zu finden. Jede Zeichenfolge vor dem Parameter wird als Name des zu durchsuchenden Verzeichnisses behandelt. Wenn Sie diesen Befehl verwenden, ohne Parameter festzulegen, sucht der Befehl „find“ nach Unterverzeichnissen und Dateien im aktuellen Verzeichnis. Und alle gefundenen Unterverzeichnisse und Dateien werden angezeigt.

Syntax

find(option)(parameter)

Optionen

-amin: Dateien suchen, auf die zum angegebenen Zeitpunkt zugegriffen wurde. Datei oder Verzeichnis, gemessen in Minuten;

-anewer: Suchen Sie nach Dateien oder Verzeichnissen, deren Zugriffszeit näher an der aktuellen Zugriffszeit liegt als die angegebene Datei oder das angegebene Verzeichnis; atime<24 Stunden>: Suche nach Dateien oder Verzeichnissen, auf die zum angegebenen Zeitpunkt zugegriffen wurde. Die Einheit wird in 24 Stunden berechnet.

-cmin: Suche nach Dateien oder Verzeichnissen, auf die zugegriffen wurde innerhalb der angegebenen Zeit. Dateien oder Verzeichnisse, die geändert wurden;

-cnewer >

-ctime<24 Stunden>: Dateien oder Verzeichnisse finden, die zum angegebenen Zeitpunkt geändert wurden, die Einheit wird in 24 Stunden berechnet

-daystart: Berechnen Sie die Zeit ab heute

- Tiefe: Beginnen Sie mit der Suche im tiefsten Unterverzeichnis im angegebenen Verzeichnis.

-Expty: Suchen Sie nach Dateien mit einer Dateigröße von 0 Byte oder einem leeren Verzeichnis ohne Unterverzeichnisse oder Dateien 🎜 >-exec: Angenommen, der Rückgabewert des Suchbefehls ist True, führen Sie den Befehl aus;

-false: Setzen Sie die Rückgabewerte des Suchbefehls auf False;

-fls: Die Wirkung dieses Parameters ähnelt der Angabe des Parameters „-ls“, das Ergebnis wird jedoch als angegebene Listendatei gespeichert.

-follow: Symbolische Links ausschließen ;

-fprint: Die Wirkung dieses Parameters ähnelt der Angabe des Parameters „-print“, aber das Ergebnis wird in der angegebenen Listendatei gespeichert

-fprint0< ;Listendatei>: Dieser Parameter hat einen ähnlichen Effekt wie die Angabe des Parameters „-print0“, das Ergebnis wird jedoch in der angegebenen Listendatei gespeichert

-fprintf ;: Die Wirkung dieses Parameters ist die gleiche wie bei der Angabe von „- printf“-Parametern, die Ergebnisse werden jedoch in der angegebenen Listendatei gespeichert.

-fstype: nur Suche für Dateien oder Verzeichnisse unter diesem Dateisystemtyp; oder Verzeichnisse, die dem angegebenen Gruppennamen entsprechen; aber der Unterschied in der Groß-/Kleinschreibung wird ignoriert;

-iname: Die Wirkung dieses Parameters ist ähnlich der der Angabe des Parameters „-name“, aber der Unterschied in der Groß-/Kleinschreibung wird ignoriert; 🎜>

-inum: Dateien oder Verzeichnisse suchen, die mit der angegebenen Inode-Nummer übereinstimmen; Der Unterschied in der Groß-/Kleinschreibung wird jedoch ignoriert 🎜> -links: Dateien oder Verzeichnisse finden, die der angegebenen Anzahl von Hardlinks entsprechen

-iname: Geben Sie eine Zeichenfolge als Vorlagenstil für die Suche nach symbolischen Verbindungen an; >

-ls: Angenommen, der Rückgabewert des Suchbefehls ist „True“, listet die Datei- oder Verzeichnisnamen in der Standardausgabe auf. mintiefe: Legen Sie die minimale Verzeichnisebene fest;

-mmin: Suche nach geänderten Dateien oder Verzeichnissen in Minuten;

-mount: Die Die Wirkung dieses Parameters ist die gleiche wie bei der Angabe von „-xdev“; Suche nach Dateien oder Verzeichnissen, die zum angegebenen Zeitpunkt geändert wurden 🎜>

-name: Geben Sie eine Zeichenfolge als Vorlagenstil zum Suchen von Dateien oder Verzeichnissen an.

-newer: Suchen Sie nach Dateien oder Verzeichnissen, deren Änderungszeit näher liegt die aktuelle Änderungszeit als die angegebene Datei oder das angegebene Verzeichnis;

-nogroup: Finden Sie den Identifikationscode, der nicht zu den Dateien oder Verzeichnissen der lokalen Hostgruppe gehört

-noleaf: Unabhängig vom Verzeichnis , es müssen mindestens zwei feste Links vorhanden sein;

-nouser: Dateien oder Verzeichnisse suchen, die nicht zur lokalen Host-Benutzer-ID gehören

-ok: Die Auswirkung davon Der Parameter ähnelt der Angabe von „-exec“, der Benutzer wird jedoch vor der Ausführung des Befehls gefragt. Wenn die Antwort „y“ oder „Y“ lautet, wird der Befehl aufgegeben. Vorlagenstil>: Geben Sie eine Zeichenfolge als Vorlagenstil für die Suche im Verzeichnis an.

-perm: Suchen Sie nach Dateien oder Verzeichnissen, die dem angegebenen Berechtigungswert entsprechen

-print: Unter der Annahme, dass der Rückgabewert des Suchbefehls True ist, listen Sie den Datei- oder Verzeichnisnamen in der Standardausgabe auf. Das Format ist ein Name für jede Spalte, und vor jedem Namen steht eine Zeichenfolge „./“.

-print0: Angenommen, der Rückgabewert des Suchbefehls ist True, listen Sie die Datei- oder Verzeichnisnamen auf die Standardausgabe. Das Format ist, dass sich alle Namen in derselben Zeile befinden.

-printf: Angenommen, der Rückgabewert des Suchbefehls ist „True“, listet die Datei- oder Verzeichnisnamen in der Standardausgabe auf. Das Format kann von Ihnen selbst angegeben werden.

-prune: Suchen Sie nicht nach einer Zeichenfolge als Vorlagenstil für die Suche nach Dateien oder Verzeichnissen.

-regex: Geben Sie eine Zeichenfolge an als Vorlage für die Suche nach Dateien oder Verzeichnissen Vorlagenstil

-size: Dateien finden, die der angegebenen Dateigröße entsprechen

-true: Alle Rückgabewerte festlegen der Suchbefehl auf True;

-typ: Nur nach Dateien suchen, die dem angegebenen Dateityp entsprechen.

-uid: Dateien oder Verzeichnisse suchen, die dem entsprechen angegebene Benutzer-ID;

-used: Suche nach Dateien oder Verzeichnissen, auf die zu einem bestimmten Zeitpunkt nach der Änderung der Datei oder des Verzeichnisses zugegriffen wurde;

-user< ;Besitzername>: Suchen Sie die Datei oder das Verzeichnis mit dem angegebenen Besitzernamen; -version oder --version: Versionsinformationen anzeigen

-xdev: Beschränken Sie den Bereich auf das vorherige Dateisystem ;

-xtype: Die Wirkung dieses Parameters ähnelt der Angabe des Parameters „-type“, mit dem Unterschied, dass er nach symbolischen Verbindungen sucht.

Parameter

Startverzeichnis: Das Startverzeichnis für die Suche nach Dateien.

Beispiel

Übereinstimmung basierend auf Dateien oder regulären Ausdrücken

Alle Dateien und Ordner im aktuellen Verzeichnis und den Unterverzeichnissen auflisten

finden .

Suchen Sie den Dateinamen, der mit .txt endet, im /home-Verzeichnis

finde /home -name "*.txt"



Das gleiche wie oben, aber ignoriere die Größe Schreiben Sie

find /home -iname "*.txt"

Suchen Sie alle Dateien, die mit .txt und .pdf im aktuellen Verzeichnis und den Unterverzeichnissen enden

find ( - name "*.txt" -o -name "*.pdf" )

oder

find . -name "*.txt" -o -name "*.pdf"

Dateipfad oder Datei abgleichen

find /usr/ -path "*local*"

Dateipfad basierend auf regulärem Ausdruck abgleichen

find . -regex ". * (.txt|.pdf)$"

Wie oben, aber Groß- und Kleinschreibung ignorieren

find . -iregex ".*(.txt|.pdf)$"

Negative Parameter

Dateien in /home finden, die nicht mit .txt enden

find /home ! -name "*.txt"

Suche basierend auf dem Dateityp

Typparameter vom Typ . finden

Liste der Typparameter:

f gewöhnliche Datei

l symbolischer Link

d Verzeichnis

c-Zeichen-Gerät

b-Block-Gerät

s-Sockel

p Fifo basierend auf der Verzeichnistiefensuche

basierend auf der Verzeichnistiefensuche

Die maximale Tiefengrenze nach unten beträgt 3

find . -max Depth 3 -type f

Sucht alle Dateien, deren Tiefe mindestens 2 Unterverzeichnisse aus dem aktuellen Verzeichnis beträgt

find . -min Depth 2 -type f

Suche basierend auf dem Dateizeitstempel

find . -type f Timestamp

Das UNIX/Linux-Dateisystem hat drei Zeitstempel für jede Datei:

Zugriffszeit (-atime/day, -amin/minute):

Die letzte Zugriffszeit des Benutzers.

Änderungszeit (-mZeit/Tag, -mmin/Minute):

Die letzte Änderungszeit der Datei.

Änderungszeit (-ctime/Tag, -cmin/Minute):

Die letzte Änderungszeit von Dateidatenelementen (wie Berechtigungen usw.).

Suche nach allen Dateien, auf die in den letzten sieben Tagen zugegriffen wurde

find -type f -atime -7

Suche nach allen Dateien, auf die genau sieben Tage zugegriffen wurde vor

find . -type f -atime 7

Suche nach allen Dateien, auf die innerhalb von mehr als sieben Tagen zugegriffen wurde

find . -type f -atime +7

Suchen Alle Dateien finden, auf die länger als 10 Minuten zugegriffen wurde

find . -type f -amin +10

Alle Dateien finden, die länger als Datei geändert wurden. log

find . -type f -newer file.log

Übereinstimmung basierend auf der Dateigröße

find . -type f -size

Dateigrößeneinheit Dateigrößeneinheit:

b – Block (512 Bytes)

c – Byte

w – Wort (2 Bytes)

k – Kilobyte

M – Megabyte

G – Gigabyte

Suche nach Dateien, die größer als 10 KB sind

find . -type f -size +10k

Suche für Dateien mit weniger als 10 KB

finden Sie . -type f -size -10k

Suchen Sie nach Dateien mit einer Größe von 10 KB

finden Sie . -type f -size 10k

Übereinstimmende Dateien löschen

Alle .txt-Dateien im aktuellen Verzeichnis löschen

find . -type f -name "*.txt" -delete

Je nach Datei Berechtigungs-/Eigentümerübereinstimmung

Suche nach Dateien mit der Berechtigung 777 im aktuellen Verzeichnis

find . -type f -perm 777

Finde die PHP-Dateien mit anderen Berechtigungen als 644 im aktuellen Verzeichnis

find . -type f -name "*.php" ! perm 644

Alle Dateien finden, die dem Benutzer Tom im aktuellen Verzeichnis gehören

find -type f -user tom

Alle Dateien finden, die der Benutzergruppe gehören, die im aktuellen Verzeichnis versunken ist Verzeichnis

find . -type f -group sunk

Verwenden Sie die Option -exec in Verbindung mit anderen Befehlen, um alle Root-Dateien im aktuellen Verzeichnis zu finden und den Besitzer auf Benutzer tom zu ändern

find .-type f -user root

-exec chown tom {} ;

Im obigen Beispiel wird {} in Verbindung mit der Option -exec verwendet, um alle Dateien abzugleichen. und wird dann durch den entsprechenden Dateinamen ersetzt.

Suchen Sie alle .txt-Dateien in Ihrem Home-Verzeichnis und löschen Sie sie

suchen Sie $HOME/

-name „*.txt“

-. ok rm {} ;

Im obigen Beispiel hat -ok das gleiche Verhalten wie -exec, fragt jedoch ab, ob der entsprechende Vorgang ausgeführt werden soll.

Alle .txt-Dateien im aktuellen Verzeichnis finden und in der all.txt-Datei verketten

find . -type f -name "*.txt" -exec cat {} ;> all.txt

Verschiebe die .log-Datei vor 30 Tagen in das alte Verzeichnis

find . -type f -mtime +30 -name "*.log" -exec cp {} old ;

Suchen Sie alle .txt-Dateien im aktuellen Verzeichnis und drucken Sie sie in der Form „Datei: Dateiname“ aus.

find . -type f -name „*.txt“ – exec printf "Datei: %sn" {} ;

Da im Parameter -exec in einem einzeiligen Befehl nicht mehrere Befehle verwendet werden können, kann die folgende Methode nach

-exec

-exec ./text.sh {} ;

Suchen, aber aus dem angegebenen Verzeichnis springen

Suchen Sie nach allen .txt-Dateien im aktuellen Verzeichnis oder Unterverzeichnis, aber überspringen das Unterverzeichnis sk find .

-path "./sk" -prune -o -name "*.txt" -print find

Sonstige Tipps-Sammlung

Um alle aufzulisten Längen Null Dateien

find . -empty


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