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

Datenbankabfrageoptimierung: Unterabfrageoptimierung

1. Fall Nehmen Sie alle Mitarbeiter, die nicht Fi...

JS erzielt Fünf-Sterne-Lobeffekt

Verwenden Sie JS, um objektorientierte Methoden z...

Tutorial zur Installation und Konfiguration der Linux CentOS MySQL-Datenbank

Hinweise zur Installation der MySQL-Datenbank, mi...

Lösung für das Timeout-Problem bei der Installation von Docker-Compose mit PIP

1: Installationsbefehl pip install docker-compose...

Vue + Openlayer realisiert den Drag- und Rotationsverformungseffekt von Grafiken

Inhaltsverzeichnis Vorwort Ressourcen zum Thema E...

JavaScript zum Erreichen einer festen Seitenleiste

Verwenden Sie Javascript, um eine feste Seitenlei...