a magnifying glass searching through text

So finden Sie Dateien unter Linux: Beherrschen der Such- und Grep-Befehle

In diesem Artikel erfahren Sie, wie Sie mit verschiedenen Tools Dateien unter Linux finden.

Der

Suche nach Dateinamen

“Find” is one of the most popular tools to search files in Linux. When you know the file name you can search for it using command below. Replace “/home” with a folder to search through and “filename.txt” with the file name.

$ find /home -name Dateiname.txt

Durchsuchen des aktuellen Ordners nach einer Dateiersetzung

$find . -name Dokumente.zip
./Dokumente.zip

Wenn Sie den genauen Dateinamen nicht kennen, verwenden Sie den regulären Ausdruck, um nach einer Übereinstimmung zu suchen. Das Sternchen (*)-Symbol entspricht jedem Zeichensatz nach dem

$ find /home -name "Dokumente*"
/home/eugene/Documents.zip
/home/eugene/Dokumente
/home/eugene/Telefon/Dokumente

Suche nach Änderungsdatum

Um nach Dateien zu suchen, die heute geändert wurden, fügen Sie hinzu

$ find /home -mtime 0

Suchen wir zum Beispiel nach Bildern, die vor 10 Tagen geändert wurden:

$ find Pictures/ -mtime 10
Bilder/Screenshots/Screenshot vom 03.11.2023 29.10.49.png

Suche nach Dateityp

Der

Nach Verzeichnissen suchen: Um alle Verzeichnisse innerhalb eines angegebenen Pfads zu finden, verwenden Sie die Option -type d.

$ find /home -type d

Nach regulären Dateien suchen: Um umgekehrt nach regulären Dateien zu suchen, verwenden Sie die Option -type f.

$ find /home -type f -name "*.txt"

Suche nach symbolischen Links: Um nach symbolischen Links zu suchen, verwenden Sie die Option -type l.

$ find /home -type l -name „Linkname“

Nach bestimmten Dateierweiterungen suchen: Grenzen Sie Ihre Suche ein, indem Sie Dateierweiterungen angeben.

$ find /home -type f -name "*.jpg"

Kriterien kombinieren

Sie können mehrere Kriterien kombinieren, um Ihre Suche präziser zu gestalten. Hier

Suchen Sie nach geänderten Dateien mit einer bestimmten Erweiterung: Dateien finden, die in den letzten 7 Tagen mit der Erweiterung geändert wurden

$ find /var/logs -type f -name "*.log" -mtime -7

Suchen Sie nach Dateien, die innerhalb eines Datumsbereichs geändert wurden: Suchen Sie nach Dateien, die zwischen dem 1. November 2023 und dem 5. November 2023 geändert wurden.

$ find /home -newermt 2023-11-01 ! -neuer am 06.11.2023

Zusätzlich

Groß- und Kleinschreibung ignorieren: Wenn Sie möchten, dass bei der Suche die Groß-/Kleinschreibung nicht beachtet wird, verwenden Sie die Option -iname.

$ find /home -iname „Dokument*“

Einschränkung der Suchtiefe: Beschränken Sie die Suchtiefe mit der Option -max Depth auf eine bestimmte Ebene.

$ find /home -max Depth 2 -name "*.txt"

Ausgenommen bestimmte Verzeichnisse: Schließen Sie bestimmte Verzeichnisse mit -not oder ! von Ihrer Suche aus. Option.

$ find /home -type f -name "*.txt" -not -path "/home/user/exclude/*"

Denken Sie daran, das zu meistern

Suche nach Dateiinhalt mit

Wenn es darum geht, bestimmte Inhalte in Dateien zu finden, ist die

Grundlegende Inhaltssuche: Um nach einer bestimmten Zeichenfolge in einer Datei zu suchen, verwenden Sie die folgende Syntax

$ grep „search_string“ Dateiname

Ersetzen

In mehreren Dateien suchen: Wenn Sie mehrere Dateien durchsuchen möchten, geben Sie einen Platzhalter oder ein bestimmtes Dateimuster an

$ grep "pattern" /path/to/files/*.txt

Suche ohne Berücksichtigung der Groß-/Kleinschreibung: Machen Sie Ihre Suche mit der Option -i unabhängig von der Groß-/Kleinschreibung

$ grep -i „Muster“-Dateiname

Zeilennummern anzeigen: Wenn Sie die Zeilennummern wissen möchten, in denen das Muster gefunden wird, verwenden Sie die Option -n

$ grep -n „Muster“-Dateiname

Nur Dateinamen anzeigen: Um nur die Namen der Dateien anzuzeigen, die das Muster enthalten, verwenden Sie die Option -l

$ grep -l "pattern" /path/to/files/*.txt

Rekursiv suchen: Wenn Sie in allen Dateien innerhalb eines Verzeichnisses und seiner Unterverzeichnisse nach einem Muster suchen möchten, verwenden Sie die Option -r

$ grep -r "Muster" /Pfad/zum/Verzeichnis

Dateien oder Verzeichnisse ausschließen: Schließen Sie mit dem bestimmte Dateien oder Verzeichnisse von Ihrer Suche aus

$ grep "pattern" --exclude=*.log /path/to/files/*

Suche nach ganzen Wörtern: Verwenden Sie die Option -w, um nach ganzen Wörtern zu suchen und Teilübereinstimmungen zu verhindern

$ grep -w „Wort“-Dateiname

Fortschrittlich

Suche nach invertierten Übereinstimmungen: Kehren Sie die Übereinstimmung um, um Zeilen anzuzeigen, die das angegebene Muster nicht enthalten, indem Sie die Option -v verwenden

$ grep -v „Muster“ Dateiname

Übereinstimmungen zählen: Wenn Sie wissen möchten, wie viele Zeilen das Muster enthalten, verwenden Sie die Option -c:

$ grep -c „Muster“ Dateiname

Nur passender Text wird angezeigt: Nur den Text anzeigen, der dem Muster mit der Option -o entspricht:

$ grep -o "Muster" Dateiname

Rekursive Suche mit Zeilennummern: Kombinieren Sie Optionen für eine umfassende Suche, zum Beispiel:

$ grep -r -n "Muster" /Pfad/zum/Verzeichnis

Beherrschung der

Alternative Methoden zur Dateisuche

Zusätzlich zu den Mächtigen

Suchen Sie Dateien mit dem Python-Skript

Manchmal kann ein benutzerdefiniertes Python-Skript mehr Flexibilität bei der Dateisuche bieten. Hier os Und fnmatch Module:

Import os
aus fnmatch Import fnmatch

def find_files(Verzeichnis, Muster):
    für Root, Verzeichnisse, Dateien In os.walk(Verzeichnis):
        für Datei In Dateien:
            Wenn fnmatch(Datei, Muster):
                drucken(os.path.join(root, file))

# Usage
find_files('/pfad/zu/suche', '*.txt')

Dieses Skript durchläuft das Verzeichnis und seine Unterverzeichnisse und sucht nach Dateien basierend auf dem angegebenen Muster. Passen Sie die an find_files Passen Sie die Funktion Ihren spezifischen Suchkriterien an.

Der

Derlokalisieren” command is another efficient way to find files on a Linux system. It uses a pre-built index, making searches faster compared to the “find” command. However, keep in mind that the index needs regular updates to include recent changes.

Aktualisieren Sie die Locate-Datenbank:

$ sudo aktualisiertb

Nach Dateien suchen:

$ Dateiname.txt suchen

Mit der

Wenn du

Finden Sie den Speicherort der ausführbaren Datei:

$ welcher Name der ausführbaren Datei

Benutzen

Der

fd installieren:

$ sudo apt-get install fd-find # For Ubuntu/Debian
$ sudo dnf install fd # For Fedora

Nach Dateien suchen:

$ fdfind Dokumente
Telefon/Dokumente
Dokumente
Dokumente.zip

Benutzerdefinierte Skripte und Alias

Schließlich können Sie benutzerdefinierte Shell-Skripte oder Aliase erstellen, um Ihren Dateisuchprozess zu optimieren. Zum Beispiel:

# Custom Alias
alias findtxt='find /path/to/search -name "*.txt"'

# Usage
$ findtxt

Mit benutzerdefinierten Skripten und Aliasen können Sie Verknüpfungen für Ihre spezifischen Dateisuchanforderungen erstellen und so Ihren Arbeitsablauf verbessern.

Suchen Sie Dateien unter Linux mithilfe des Bash-Skripts

Durch das Erstellen und Verwenden eines Bash-Skripts können sich wiederholende Dateisuchaufgaben unter Linux automatisiert werden. Nachfolgend finden Sie ein Beispiel für ein einfaches Bash-Skript, das anhand eines bereitgestellten Musters nach Dateien sucht:

#!/bin/bash

# Bash script to find files based on a pattern

if [ $# -ne 2 ]; then
echo "Usage: $0 <directory> <pattern>"
exit 1
fi

directory=$1
pattern=$2

# Check if the directory exists
if [ ! -d "$directory" ]; then
echo "Error: Directory $directory not found."
exit 1
fi

# Use find command to search for files
find "$directory" -name "$pattern" -print

Speichern Sie dieses Skript in einer Datei, zum Beispiel find_files.sh, und machen Sie es mit dem folgenden Befehl ausführbar:

$ chmod x find_files.sh

Jetzt können Sie mit dem Skript nach Dateien suchen, indem Sie das Verzeichnis und das Muster als Argumente angeben:

$ ./find_files.sh /path/to/search "*.txt"

Dieses Skript prüft, ob die richtige Anzahl an Argumenten angegeben wird und ob das angegebene Verzeichnis existiert. Anschließend wird mit dem Befehl „find“ nach Dateien basierend auf dem angegebenen Muster gesucht.

Bonus: So durchsuchen Sie Bilder unter Linux

Unter Linux gibt es mehrere Tools und Methoden zur Bildsuche, die jeweils einzigartige Funktionen und Fähigkeiten bieten. Hier sind einige Optionen:

“find” Command with File Type Filtering:

Der Standard

$ find /path/to/images -type f -name "*.jpg"

Der

Der

$ sudo apt-get install fd-find # For Ubuntu/Debian
$ sudo dnf install fd # For Fedora

Suchen Sie nach Bildern mit einer bestimmten Erweiterung:

$ fdfind -e jpg

Der

Der

$ lokalisieren '*.jpg'

Denken Sie daran, die Ortungsdatenbank regelmäßig auf aktuelle Änderungen zu aktualisieren:

$ sudo aktualisiertb

“grep” Command for Specific Image Names:

Wenn Sie eine bestimmte Namenskonvention für Ihre Bilddateien haben, können Sie diese verwenden

$ grep -r 'pattern' /path/to/images

Ersetzen

“file” Command

Der

$ Datei /Pfad/zu/Bilder/*

Suchen Sie nach Zeilen, die enthalten

“feh” Image Viewer with Filelist

Wenn Sie eine Liste mit Bilddateien haben und diese anzeigen möchten, können Sie die

$ feh -f $(find /path/to/images -type f -name "*.jpg")

Dadurch wird ein Bildbetrachter mit einer Dateiliste aller JPEG-Dateien im angegebenen Verzeichnis geöffnet.

Verwenden von Bildmetadaten-Tools

Wenn Ihre Bilder Metadaten haben, können Sie Tools wie verwenden

$ exiftool -filename -r /path/to/images | grep 'search_term'

Grafische Dateimanager

Grafische Dateimanager wie Nautilus, Dolphin oder Thunar bieten häufig Suchfunktionen. Sie können zum Verzeichnis navigieren und die Suchleiste verwenden.

Tag-basierte Bildorganisatoren

Werkzeuge wie

Zusammenfassung

Zusammenfassend lässt sich sagen, dass das Beherrschen der Dateisuche unter Linux das Verstehen und Kombinieren verschiedener Befehle, Tools und Skripttechniken erfordert. Ob sie