Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So verwenden Sie den Befehl „Suchen“, um Dateien unter Linux zu finden

So verwenden Sie den Befehl „Suchen“, um Dateien unter Linux zu finden

青灯夜游
青灯夜游Original
2019-03-15 16:25:354968Durchsuche

Der Linux-Suchbefehl ist eines der leistungsstärksten Tools im Arsenal des Linux-Systemadministrators. Er ermöglicht die Suche nach Dateien und Verzeichnissen in der Verzeichnishierarchie basierend auf einem vom Benutzer eingegebenen Ausdruck und wendet den Benutzer auf jede passende Datei an . spezifizierter Vorgang. Der folgende Artikel zeigt Ihnen, wie Sie den Befehl „Suchen“ verwenden. Ich hoffe, er ist hilfreich für Sie.

So verwenden Sie den Befehl „Suchen“, um Dateien unter Linux zu finden

Linux-Suchbefehl

Verwenden Sie den Suchbefehl basierend auf Dateiberechtigungen, Typ, Datum, Besitz, Größe Warten Sie, bis nach Dateien gesucht wird. Es kann auch in Verbindung mit anderen Tools wie grep oder sed verwendet werden, um Operationen an diesen Dateien durchzuführen

Bevor wir die Verwendung des Befehls „find“ besprechen, wollen wir zunächst die grundlegende Syntax verstehen:

find [options] [path...] [expression]

Beschreibung:

● Optionsattribut: Steuert die Verarbeitung symbolischer Links, Debugging-Optionen und Optimierungsmethoden.

● Path...-Attribut: Definiert das Startverzeichnis, in dem find nach Dateien sucht.

● Ausdrucksattribut: besteht aus „Optionen“, „Suchmodus“ und „durch Operatoren getrennte Operationen“.

Schauen wir uns das folgende Beispiel an:

find  -L /home/projects/ -name "*.js" -exec chmod 644 {} \;

Beschreibung: Dieser Befehl enthält einen Parameter -L (Optionen), der es dem Suchbefehl ermöglicht, symbolischen Links zu folgen und /home/projects zu durchsuchen / (Pfad ...), alle Dateien finden, die mit .js(Ausdruck) enden, und die Berechtigungen aller übereinstimmenden Dateien auf 644 setzen.

Wie finde ich Dateien nach Typ?

Um den gesuchten Dateityp anzugeben, verwenden Sie den Parameter -type.

Der Dateityp kann mithilfe der folgenden Deskriptoren angegeben werden:

● f: Reguläre Datei

● d: Verzeichnis

● l: Symbolischer Link

● c: Rollengerät

● b: Blockgerät

● p: Named Pipe (FIFO)

● s: Socket

Beispiel:

Wenn Sie alle Verzeichnisse im aktuellen Arbeitsverzeichnis finden möchten, können Sie Folgendes verwenden:

find . -type d

Wenn Sie alle Zeichengeräte im System auflisten möchten Typ:

find / -type c

Wie finde ich Dateien nach Namen?

Das Suchen von Dateien nach Namen ist wahrscheinlich die häufigste Verwendung des Suchbefehls. Um Dateien nach Namen zu suchen, übergeben Sie die Option -name zusammen mit dem Namen der Datei, nach der Sie suchen möchten.

Beispiel:

Um nach einer Datei namens document.pdf im Verzeichnis /home/linuxize zu suchen, können Sie den folgenden Befehl verwenden:

sudo find /home/linuxize -type f -name document.pdf

if Um eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen, können Sie die Option -name mit dem Befehl -iname ändern:

sudo find /home/linuxize -type f -iname document.pdf

Beschreibung: Der obige Befehl sucht nach Document.pdf, DOCUMENT.pdf usw.

Wie finde ich Dateien nach Erweiterung?

Die Suche nach Dateien anhand der Erweiterung ist dasselbe wie die Suche nach Dateien anhand des Namens.

Zum Beispiel:

Wenn Sie alle Dateien mit der Endung .log.gzin im Verzeichnis /var/log/nginx finden möchten, können Sie Folgendes verwenden:

find /var/log/nginx -type f -name '*.log.gz'

Wenn Sie alle Dateien finden möchten, die nicht mit dem regulären Ausdruck *.log.gz übereinstimmen, können Sie den Parameter -not verwenden. Um beispielsweise alle Dateien zu finden, die nicht mit *.log.gz enden, verwenden Sie:

find /var/log/nginx -type f -not -name '*.log.gz'

Wie finde ich Dateien nach Größe?

Um Dateien anhand ihrer Größe zu finden, müssen Sie den Parameter -size zusammen mit der Größenbedingung übergeben. Dateigrößen können mit den folgenden Suffixen angegeben werden:

● b: 512-Byte-Blöcke (Standard)

● c: Bytes

● w: Doppelbyte-Wörter

●k: Kilobyte

●M: Megabyte

●G: Gigabyte

Zum Beispiel:

to be in / To find Um alle Dateien im tmp-Verzeichnis zu finden, die genau 1024 Byte groß sind, können Sie den folgenden Befehl ausführen:

find /tmp -type f -size 1024c

Mit dem Suchbefehl können wir auch nach Dateien suchen, die größer oder kleiner als die angegebene Größe sind. Zum Beispiel:

Wir können alle Dateien im aktuellen Arbeitsverzeichnis durchsuchen, die kleiner als 1 MB sind. Dazu muss vor dem Größenwert ein Minuszeichen hinzugefügt werden:

find . -type f -size -1M

Wenn wir nach Dateien suchen möchten, die größer als 1 MB sind , wir brauchen das Pluszeichen +:

find . -type f -size +1M

, um sogar Dateien innerhalb eines Größenbereichs zu durchsuchen. Mit dem folgenden Befehl werden beispielsweise alle Dateien zwischen 1 und 2 MB gefunden:

find . -type f -size +1M -size 21M

Wie finde ich Dateien nach Änderungsdatum?

Der Suchbefehl kann Dateien auch basierend auf der letzten Änderung, dem letzten Zugriff oder der Änderungszeit durchsuchen.

Wie bei der Suche nach Größe können Sie die Plus- und Minuszeichen verwenden, um größer oder kleiner als anzugeben.

Zum Beispiel:

Sie haben vor ein paar Tagen eine Taubenschlag-Konfigurationsdatei geändert, aber den Dateinamen vergessen. Wir können ganz einfach alle Dateien im Verzeichnis /etc/dovecot/conf.d/ mit der Endung .conf filtern, die in den letzten 5 Tagen geändert wurden:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Wir können auch 30 Tage oder alle Dateien im auflisten /home-Verzeichnis, das zuvor geändert wurde:

find /home -mtime +30 -daystart

Wie finde ich Dateien nach Berechtigungen?

Um Dateien basierend auf Dateiberechtigungen zu filtern, müssen Sie die Option -perm verwenden.

Zum Beispiel:

要在/var/www/html目录中查找权限为775的所有文件:

find /var/www/html -perm 644

还可以使用减号-或斜杠/为数字模式添加前缀。

当斜杠/用作前缀时,至少一个类别(用户,组或其他类别)必须至少为文件匹配设置相应的位。

find . -perm /444

说明:搜索对用户,组或其他人设置了读权限的所有文件。

如果使用减号-作为前缀,则必须至少设置要匹配的文件。

find . -perm -664

说明:搜索对所有者和组具有读写权限的文件,并且其他用户可以读取。

如何按所有者查找文件?

要查找特定用户或组拥有的文件,可以使用-user和-group选项。

例如,要搜索用户拥有的所有文件和目录linuxize,可以运行:

find / -user linuxize

这是更高级的示例,假设是希望查找用户www-data拥有的所有文件,并将匹配文件的所有权从www-data更改为nginx:

find / -user www-data -type f  -exec chown nginx {} \;

相关视频教程推荐:《linux教程

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注php中文网相关教程栏目!!!

Das obige ist der detaillierte Inhalt vonSo verwenden Sie den Befehl „Suchen“, um Dateien unter Linux zu finden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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