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

Beispiel für eine Methode zum Festlegen von MySQL-Fremdschlüsseln

1. Methode zum Festlegen des Fremdschlüssels 1. U...

Zwei Abfragemethoden, wenn der MySQL-Abfragefeldtyp JSON ist

Die Tabellenstruktur ist wie folgt: Ich würde var...

MySQL-String-Aufteilungsvorgang (String-Abfangen mit Trennzeichen)

String-Extraktion ohne Trennzeichen Fragenanforde...

Die Prinzipien und Mängel der MySQL-Volltextindizierung

Der MySQL-Volltextindex ist ein spezieller Index,...

So installieren Sie pyenv unter Linux

Voraussetzungen Git muss installiert werden Insta...

7 Fähigkeiten, die Webdesigner haben müssen

Webdesign ist sowohl eine Wissenschaft als auch e...

Docker-Kern und spezifische Verwendung der Installation

1. Was ist Docker? (1) Docker ist ein Open-Source...

JavaScript zum Erzielen eines einfachen Countdown-Effekts

In diesem Artikelbeispiel wird der spezifische Co...

Navicat Premium betreibt MySQL-Datenbank (führt SQL-Anweisungen aus)

1. Einführung in Navicat 1. Was ist Navicat? Navi...

Zusammenfassung der grundlegenden Verwendung von CSS3 @media

//Grammatik: @media Medientyp und | nicht | nur (...

Das Lazy-Loading-Attributmuster in JavaScript verstehen

Traditionell erstellen Entwickler Eigenschaften i...