Welcher Befehl eignet sich besser für die unscharfe Suche nach Dateien in Linux?

Welcher Befehl eignet sich besser für die unscharfe Suche nach Dateien in Linux?

1. Einleitung

In diesem Artikel wird hauptsächlich erklärt, wie Sie Befehlszeilentools zur unscharfen Suche nach Dateien im Linux-System verwenden. Die Tools in diesem Artikel umfassen die Verwendung des Befehls „find“ und des Befehls „grep“. Es gibt auch eine Kombination aus „find“ und „grep“, die je nach Bedingungen genauer nach Dateien suchen kann.


2. Unscharfe Suche nach Dateien basierend auf dem Dateinamen

Zum Beispiel:

Suchen Sie im Verzeichnis /var/zcwyou nach Dateien mit der Endung .txt. Bei den Dateinamen muss die Groß-/Kleinschreibung beachtet werden. Das heißt, nur das Suffix .txt kann übereinstimmen

[root@zcwyou ~]# finde /var/zcwyou -name '*.txt'

Suchen Sie im Verzeichnis /var/zcwyou nach Dateien mit der Endung .txt und ignorieren Sie die Größe. Das heißt, es können Dateien mit der Endung .txt, .Txt oder .TXT abgeglichen werden.

[root@zcwyou ~]# finde /var/zcwyou -iname '*.txt'

3. Unscharfe Suche nach Dateien basierend auf Dateinamen und Dateiinhalt

Anwendung:

Kombinieren des Find-Befehls mit xargs und grep -i „Ziel stimmt mit Schlüsselwort überein“

Fall 1:

Suche nach Dateien im aktuellen Verzeichnis, deren Inhalt eine bestimmte Zeichenfolge enthält (Groß-/Kleinschreibung beachten):

Grammatik:

find /etc/ -type f | xargs grep 'Zielschlüsselwort'

Fall 2:

Suchen Sie im Verzeichnis /etc/ nach Dateien mit dem Schlüsselwort zcwyou

[root@zcwyou ~]# finde /etc/ -type f | xargs grep 'zcwyou'

Sie finden die folgenden Dateien und deren entsprechenden Inhalt:

/etc/group-:zcwyou:x:1000:

/etc/gshadow-:zcwyou:!!::

/etc/passwd-:zcwyou:x:1000:1000:zcwyou:/home/zcwyou:/bin/bash

/etc/group:zcwyou:x:1000:zcwyou

/etc/shadow-:zcwyou:

Ist das nicht sehr effizient?

Fall 3:

Suche nach bestimmten Dateien im aktuellen Verzeichnis, deren Inhalt eine bestimmte Zeichenfolge enthält (Groß-/Kleinschreibung beachten):

Verwenden Sie den Befehl „find“, um im aktuellen Verzeichnis nach allen Dateien mit der Endung .c und in Unterverzeichnissen nach allen Dateien mit der Endung .c zu suchen, und übergeben Sie die Ergebnisse als Parameter an „grep“, das die Suche und Filterung durchführt.

[root@zcwyou ~]#find . -type f -name '*.c' | xargs grep -i 'Zielsuchschlüsselwort'

4. Verwenden Sie den Befehl „find“, um nach Linux-Dateien zu suchen

Im aktuellen Verzeichnis wird nach Dateien gesucht, auf die in den letzten 10 Minuten im System zugegriffen wurde.

[root@zcwyou ~]# finde . -amin -10

Im aktuellen Verzeichnis wird nach Dateien gesucht, auf die in den letzten 48 Stunden im System zugegriffen wurde.

[root@zcwyou ~]# finde . -atime -2

Suchen Sie im aktuellen Verzeichnis nach Dateien oder Ordnern, die im System leer sind

[root@zcwyou ~]# finde . -empty

Suchen Sie im aktuellen Verzeichnis nach Dateien, die zur Gruppe cat im System gehören

[root@zcwyou ~]# finde . -group cat

Fuzzy-Suche nach Dateien, die in den letzten 5 Minuten im System geändert wurden

[root@zcwyou ~]# finde . -mmin -5

Suchen Sie nach Dateien, die in den letzten 24 Stunden auf dem System geändert wurden

[root@zcwyou ~]# finde . -mtime -1

5. Fuzzy-Suche nach Linux-Dateien basierend auf Benutzerattributen

Suchen Sie im System nach Dateien veralteter Benutzer

[root@zcwyou ~]# finde . -nouser

Suchen Sie im System nach den Dateien des Benutzers zcwyou

[root@zcwyou ~]# finde . -user zcwyou

6. Unscharfe Suche nach Dateien nach Dateigröße

Suchen Sie im Stammverzeichnis nach Dateien, die größer als 1 MB sind, und drucken Sie sie aus.

[root@zcwyou ~]# finden / -size +1M -type f -print

Suchen Sie im aktuellen Verzeichnis (einschließlich Unterverzeichnissen) nach Dateien mit einer Größe von 500 Bytes und drucken Sie die Ergebnisse aus.

[root@zcwyou ~]# finden -size 500c -print

Suchen Sie im Home-Verzeichnis nach Dateien, die kleiner als 600 KB sind

[root@zcwyou ~]# finde /home -size -600k -print

7. Suche nach Dateien nach Alter

Suchen Sie nach Dateien, die neuer sind als „old.txt“

[root@zcwyou ~]# finde -neuere "alt.txt" -Typ f -print

Suchen Sie nach Dateien, die älter sind als newer.txt

[root@zcwyou ~]# finden ! -newer "newer.log" -type f -print

Suchen Sie nach Dateien, die neuer als „old.txt“ und älter als „newer.txt“ sind.

[root@zcwyou ~]# finde -newer 'alt.txt' ! -newer 'newer.txt' -type f -print

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • So finden Sie eine Datei in Linux unscharf

<<:  Vue implementiert bidirektionale Datenbindung

>>:  MySQL-FAQ-Serie: Wann werden temporäre Tabellen verwendet?

Artikel empfehlen

MySQL-Datenbankgrundlagen - Prinzip der Join-Operation

Join verwendet den Nested-Loop-Join-Algorithmus. ...

Einführung in 10 Online-Entwicklungstools für Webdesign

1. Online-Textgenerator BlindTextGenerator: Für D...

Docker-Volumes-Dateizuordnungsmethode

Hintergrund Wenn Sie am Blockchain-Protokollmodul...

6 Möglichkeiten, die von Linux-Prozessen belegten Portnummern anzuzeigen

Für Linux-Systemadministratoren ist es von entsch...

Zusammenfassung der Unterschiede zwischen HTML, SHHTML und XHTML

Zum Beispiel: <u> Dies hat kein Endzeichen u...

Detaillierte Erklärung der Zählung ohne Filterbedingungen in MySQL

zählen(*) erreichen 1. MyISAM: Speichert die Gesa...

HTML-Subtag und Sup-Tag

Heute stelle ich zwei HTML-Tags vor, die ich nich...

Für die Verwendung des Docker-Befehls ist kein Sudo erforderlich

Da der Docker-Daemon an den Unix-Socket des Hosts...

So installieren und speichern Sie die PostgreSQL-Datenbank in Docker

Überspringen Sie die Docker-Installationsschritte...

Detaillierte Erklärung der Standort- und Umschreibenutzung in nginx

1. Zusammenfassung der Standortnutzung Der Stando...

Automatischer Commit-Vorgang für MySQL-Transaktionen

Der Standardbetriebsmodus von MySQL ist der Autoc...