In diesem Artikel wird erläutert, wie Sie Dateien und Verzeichnisse in Linux finden können. Wir werden die Befehle locate, find und grep verwenden. Jeder Befehl wird unten im Detail besprochen.
Wir haben Ubuntu 20.04 LTS verwendet um den Vorgang zu demonstrieren.
Mit dem Locate-Befehl Dateien und Verzeichnisse in Linux finden
Der Befehl locate liefert schnellere Ergebnisse, da er die mlocate.db-Datenbank durchliest, die alle Dateipfade in Ihrem System enthält.
locate installieren
Wenn Sie die folgende Meldung erhalten, müssen Sie locate.
installieren
Der Befehl zum Installieren von locate lautet:
sudo apt-get install mlocate
Der erste Schritt ist die Eingabe Ihres Passworts. Sobald Sie Ihr Passwort eingegeben haben, beginnt die Installation.
Sie müssen die Suchdatenbank nach der Installation aktualisieren. Da locate auf diese Datenbank angewiesen ist, müssen Sie sie regelmäßig aktualisieren, um die Effizienz zu gewährleisten. Sie benötigen Superuser-Rechte, um die mlocate-Datenbank zu aktualisieren.
sudo updatedb
Suche nach Dateien anhand des Dateinamens
Verwenden Sie den folgenden Befehl, um anhand ihres Namens nach Dateien zu suchen:
locate {filename}
Wir suchen nach einer Datei namens „textfile.txt“, also lautet der Befehl:
locate textfile.txt
Das Ergebnis ist der Pfad zum Speicherort Ihrer Datei.
Groß-/Kleinschreibung ignorieren
Standardmäßig verarbeitet locate Anfragen unter Berücksichtigung der Groß- und Kleinschreibung, was bedeutet, dass textfile.txt und TEXTFILE.TXT auf unterschiedliche Suchergebnisse verweisen.
Wie Sie sehen können, konnte TEXTFILE.TXT nicht gefunden werden.
Sie können die Groß-/Kleinschreibung ignorieren, indem Sie das –i verwenden Möglichkeit. Der Befehl lautet:
locate –i {file name}
Wie Sie sehen können, wurde die Datei nun gefunden.
Mit dem find-Befehl Dateien und Verzeichnisse in Linux finden
Im Vergleich zu Lokalisieren ist Finden viel leistungsfähiger, aber langsamer. Es ist langsamer, weil es Ihre Festplatte nach den Dateien durchsucht. Was find großartig macht, ist, dass Sie Dateien und Verzeichnisse in Linux basierend auf Benutzergruppen finden können, wann die Dateien geändert oder aufgerufen wurden, Dateiberechtigungen, Daten und Größe.
Dateien im aktuellen Verzeichnis suchen
Sie können alle Dateien mit einem bestimmten Namen in Ihrem aktuellen Verzeichnis anzeigen, indem Sie den folgenden Befehl verwenden:
find . -name {filename}
Sie sehen alle Dateien mit dem Namen „textfile.txt“ im aktuellen Verzeichnis.
Nach Dateien im Home-Verzeichnis suchen
Verwenden Sie /home, um nach Dateien in Ihrem Home-Verzeichnis zu suchen . Der Befehl lautet:
find /home -name {filename}
Sie werden alle Dateien mit dem Namen Hello.txt in Ihrem Home-Verzeichnis sehen.
Groß-/Kleinschreibung ignorieren
Standardmäßig verarbeitet find Anfragen unter Berücksichtigung der Groß- und Kleinschreibung, was bedeutet, dass hello.txt und hello.txt auf unterschiedliche Suchergebnisse verweisen.
Wie Sie sehen, konnte hello.txt nicht gefunden werden.
Verwenden Sie den folgenden Befehl, um die Groß-/Kleinschreibung zu ignorieren:
find –iname {file name}
Wie Sie im Bild unten sehen können, wurde hello.txt gefunden.
Suchen mit Platzhaltern
Sie können Platzhalter verwenden, um anhand bestimmter Kriterien nach Dateien zu suchen. Das Sternchen (* ) Platzhalter ermöglicht es Ihnen, Instanzen eines Zeichens abzugleichen.
Das folgende Beispiel verwendet die folgenden Befehle:
find . –name ‘*he’
Dieser Befehl listet alle Dateinamen auf, die mit „he“
enden
find . –name ‘he*’
Dieser Befehl listet alle Dateinamen auf, die mit „he“
beginnen
Suchen anhand der Dateigröße
Um Dateien basierend auf der Größe zu finden, verwenden Sie:
find –size {filesize} –type f
Dieser Befehl sucht nach Dateien, die eine Größe von 68 Bytes haben.
Um nach Dateien zu suchen, die größer oder kleiner als eine bestimmte Größe sind, fügen Sie „+ hinzu “ oder „– ” zu Ihrem Befehl.
find –size -{filesize} –type f
Das folgende Beispiel sucht nach Dateien, die kleiner als 512 Byte sind.
Dieser Befehl sucht nach Dateien, die größer als 512 Bytes sind.
Suchen Sie Dateien anhand des Zeitpunkts ihrer letzten Änderung
Verwenden Sie den folgenden Befehl, um nach Dateien zu suchen, die darauf basieren, wann sie zuletzt geändert wurden:
find -iname "*.txt" -mtime -60
Dieser Befehl sucht nach Dateien, die in den letzten 60 Tagen geändert wurden.
Verzeichnisse suchen
Um ein Verzeichnis zu finden, verwenden Sie den Befehl:
find –name “{file name}” –type d
Als Ergebnis sehen Sie den Pfad zum Verzeichnis.
Schreibgeschützte Dateien finden
Um schreibgeschützte Dateien zu finden, verwenden Sie den Befehl
find / -perm /u=r
Sie können alle schreibgeschützten Dateien im Terminal sehen.
Grep-Befehl verwenden, um Dateien und Verzeichnisse in Linux zu finden
Grep, Global Regular Expression Print wird unter Linux verwendet, um Zeichenfolgen in einer bestimmten Datei zu finden. Wenn grep diese Zeichen findet, gibt es die Zeile aus. Der Befehl lautet:
grep {string} {file name}
Im folgenden Beispiel suchen wir in der Datei „textfile.txt“ nach der Zeichenfolge „is“. Sie können die Zeilen sehen, die das „ist“.
enthalten
Zeilennummern drucken
Sie drucken die Zeilennummern zusammen mit dem passenden String aus mit:
grep {string} {filename} –n
Das folgende Beispiel gibt die Zeilennummer aus, in der die Zeichenfolge „is“ gefunden wird.
Übereinstimmung umkehren
Mit dieser Option können Sie die Linien drucken, die nicht mit dem eingegebenen Muster übereinstimmen.
grep {string} {file name} –v
Das folgende Beispiel gibt die Zeile aus der Textdatei „textfile.txt“ aus, die „is“ nicht enthält.
Groß-/Kleinschreibung ignorieren
Standardmäßig verarbeitet grep Abfragen unter Berücksichtigung der Groß- und Kleinschreibung, was bedeutet, dass is und IS auf unterschiedliche Suchergebnisse zeigen.
Wie Sie sehen, konnte „IS“ nicht gefunden werden.
Verwenden Sie den folgenden Befehl, um die Groß-/Kleinschreibung zu ignorieren:
grep {string} {file name} –i
Rekursive Suche
Grep lässt Sie standardmäßig keine Verzeichnisse durchsuchen. Sie erhalten die folgende Fehlermeldung:
Sie können innerhalb von Verzeichnissen suchen mit:
grep {string} . –R
Im folgenden Beispiel wird im aktuellen Verzeichnis nach der Zeichenfolge „some“ gesucht.
In diesem Artikel haben wir gesehen, wie locate, find und grep funktionieren, um Dateien und Verzeichnisse in Linux zu finden. Wir haben auch einige Fälle durchgesehen, wie sie verwendet werden.