So verwenden Sie den Find-Befehl in Linux

Bei der Arbeit in einer UNIX-Umgebung, wie in diesem Fall Linux, ist es ideal, die Verwendung einiger Befehle im Detail zu kennen, die uns bei mehreren administrativen oder persönlichen Aufgaben helfen. Einer davon ist der Find-Befehl, der, wie der Name schon sagt, verwendet wird, um Dateien oder Elemente, die sich im Betriebssystem befinden, auf einfache, aber funktionale und vollständige Weise zu finden.

Wenn wir uns entscheiden, den Befehl find zu verwenden, können wir die Liste der Dateien oder Verzeichnisse basierend auf den Bedingungen suchen und finden, die wir in der auszuführenden Verwendungssyntax angeben. Als nächstes werden wir sehen, was der Befehl find ist und wie wir ihn unter Linux mit seinen verschiedenen Parametern verwenden können.

Was ist findenFind ist ein Befehl innerhalb von Linux-Distributionen, der sehr nützlich ist, obwohl er etwas unbekannt ist. Es ist ein Befehl, der das Auffinden einer Datei erleichtert, wenn wir viele Dateien haben und es wirklich schwierig ist, sie zu finden. Neben Dateien können Sie auch ganze Verzeichnisse durchsuchen oder löschen. Sie können mit bestimmten Filtern wie Größe, Name, Erweiterung, Datum … suchen.

Filtern von Suchen mit FindEiner der großen Vorteile dieses Befehls besteht darin, dass wir die Ergebnisse nach verschiedenen Variablen filtern können, wie zum Beispiel:

  • Berechtigungen
  • Gruppen
  • Benutzer
  • Dateityp
  • Datum der Erstellung oder Änderung
  • Größe und weitere Optionen verfügbar

Solvetic erklärt verschiedene Methoden, um den Find-Befehl effektiv unter Linux zu verwenden, und für diesen Fall verwenden wir Ubuntu 19.04. Wir werden sehen, wie wir den Befehl find verwenden können, um Dateien mit Filtern über das Linux-Terminal zu finden und zu durchsuchen.

1. So durchsuchen Sie Dateien nach Namen oder Erweiterung mit Befehlen in Linux


Dies ist der wichtigste Teil der Verwendung des Find-Befehls und dafür ist es erforderlich, entweder den Namen des Objekts oder seine Erweiterung (.mp4, .txt,. Jpg.webp usw.) zu kennen, um ein direktes Ergebnis zu erhalten.

Schritt 1
Zum Beispiel möchten wir eine Datei namens Solvetic.docx finden, die sich in einem Ordner auf dem Desktop befindet. In diesem Fall müssen wir zu diesem Pfad navigieren und dann Folgendes ausführen:

 find -name Solvetic.docx 
Schritt 2
Als Ergebnis sehen wir den Ordner, in dem die Datei gehostet wird (falls zutreffend):

Schritt 3
Im Gegenteil, wenn wir alle Dateien mit einer bestimmten Erweiterung wie .docx sehen möchten, führen wir Folgendes aus:

 find -name "* .docx"
Schritt 4
Das Sternchen listet alle Dateien mit dieser Erweiterung auf

Schritt 5
Die allgemeine Syntax für den Find-Befehl lautet wie folgt:

 find [-H] [-L] [-P] [Pfad…] [Ausdruck] 
Schritt 6
Diese Parameter sind:

-HEs folgt keinen symbolischen Links, außer wenn Befehlszeilenargumente verarbeitet werden.

-LFolgen Sie den symbolischen Links.

-PEs folgt nie Symlinks und ist die Standardoption

Schritt 7
Die Option [Pfad…] gibt den Ort an, an dem die Suche unter Linux durchgeführt werden soll. Der Parameter [Ausdruck] kann Operatoren, Optionen, Tests oder auszuführende Aktionen sein. Wir sehen, dass der Befehl Find standardmäßig die verfügbaren symbolischen Links ignoriert, aber mit -L werden wir nach ihnen suchen, um vollständigere Ergebnisse zu erhalten.
Es gibt drei Optimierungsstufen, die wir bei der Ausführung von Find auswählen können, und zwar:

  • -O1
  • -O2
  • -O3

Schritt 8
Der Wert -O1 ist die Standardoption und seine Funktion besteht darin, den Find-Befehl zu erzwingen, basierend auf dem von uns definierten Dateinamen zu suchen. Die Ebene -O2 kümmert sich um die Priorisierung der Dateinamenfilter, führt dann alle Filter basierend auf dem Dateityp aus und verwendet später andere Bedingungen für vollständige Ergebnisse und die Ebene -O3 führt eine tiefere Optimierung durch, die alle Ressourcen maximal nutzt .

Befehlsoptionen suchenDie allgemeinen Suchoptionen sind:

  • -O1: Standardwert, es ist ein Filter basierend auf dem Namen der angegebenen Datei.
  • -O2: Suche zuerst nach Dateinamen und dann nach ihrem Typ
  • -O3: Führen Sie eine Suche durch, die die Ergebnisse automatisch nach Ressourcenverbrauch sortiert
  • -maxdepth X: Durchsucht das aktuelle Verzeichnis und Unterverzeichnisse auf X-Ebenen.
  • -iname: Suche ohne sich auf den Text zu verlassen.
  • -not: Gibt nur die Ergebnisse zurück, die nicht mit der Suche übereinstimmen
  • -type f: Nur Dateien durchsuchen.
  • -type d: Verzeichnissuche ausführen

2. So finden Sie Dateien nach Name oder Erweiterung mit Befehlen, bei denen die Groß-/Kleinschreibung nicht beachtet wird unter Linux

Dies ist eine Methode, die es uns ermöglicht, Dateien zu finden und die Ergebnisse anzuzeigen, die Groß- und Kleinschreibung enthalten:

 find -inamesolvtic.docx 

Namen in Verzeichnissen nachschlagenMit dieser Methode können wir alle Verzeichnisse namens Solvetic im Home-Verzeichnis (/) erkennen:

 find / -type d -name Solvetic

Dateien ohne Berechtigungen suchen 777Die 777-Berechtigungen (Rwxrwxrwx) mit den Berechtigungen, die keine Einschränkung haben, dh jeder Benutzer kann darauf zugreifen.
Um die Dateien anzuzeigen, die diese Berechtigung nicht haben, führen wir Folgendes aus:

 find / -typ f! -dauerwelle 777 

Wenn wir nun die Dateien mit 777-Berechtigungen sehen möchten, führen wir Folgendes aus:

 finden. -Typ f -Dauer 0777 -Druck 

Finden Sie SGID-Dateien mit 2644-BerechtigungenBerechtigung 2644 sind Dateien mit Lese- und Schreibberechtigungen. Um diese Dateien zu sehen, werden wir Folgendes ausführen:

 finden / -dauer 2644

Finden Sie SUID-Dateien unter LinuxSUID-Dateien (Besitzer-Benutzer-ID bei Ausführung festlegen), sind spezielle Dateiberechtigungen, die einem Element erteilt werden und dienen dazu, einem Benutzer vorübergehend Berechtigungen zu erteilen, um ein Programm oder eine Datei mit den Berechtigungen des Eigentümers der Datei auszuführen.
Um sie zu sehen, führen wir Folgendes aus:

 find / -perm / u = s

SGID-Dateien durchsuchenSGID-Dateien (Gruppen-ID bei Ausführung einrichten) sind eine spezielle Art von Dateiberechtigungen, mit denen es möglich ist, die Zugriffsberechtigungen des angemeldeten Benutzers zu erben. Um diese Dateien anzuzeigen, führen wir Folgendes aus:

 finden / -perm / g = s

Nur-Lese-Dateien suchenUm zu sehen, welche schreibgeschützten Dateien in Linux sind, führen wir Folgendes aus:

 find / -perm / u = r

Ausführbare Dateien durchsuchenWenn wir mit Sicherheit wissen wollen, welche Dateien ausführbar sind, können wir die folgende Zeile verwenden:

 find / -perm / a = x

3. So finden Sie Dateien mit 777- und chmod 755-Berechtigungen unter Linux

Schritt 1
Dies sind spezielle Lese- und Schreibberechtigungen, um diese Dateien anzuzeigen, die wir ausführen werden:

 find / -type d -perm 777 -print -exec chmod 755 {} \;

Schritt 2
Wenn wir nun die Dateien mit den Berechtigungen 777 und chmod 644 finden möchten, führen wir Folgendes aus:

 find / -type f -perm 0777 -print -exec chmod 644 {} \;

4. Suchen und löschen Sie Dateien mit Befehlen in Linux

Datei suchen und löschenMit Find können wir eine Datei erkennen und mit dem Löschen fortfahren. In diesem Fall löschen wir die Dateisolvtic.docx, für die wir Folgendes ausführen:

 finden. -type f -name "solvetic.docx" -exec rm -f {} \; 

Wenn wir mehrere Dateien löschen möchten, können wir deren Erweiterung verwenden:

 finden. -type f -name "* .docx" -exec rm -f {} \;

Suche nach leeren Dateien oder VerzeichnissenWir können einen Pfad wie /tmp angeben, um die leeren Verzeichnisse zu finden, in diesem Fall führen wir Folgendes aus:

 find / tmp -type d -leer

Um nach leeren Dateien zu suchen, führen wir aus:

 find /tmp -type f -leer

Versteckte Dateien findenUnter Linux und auf allen Systemen sind einige Dateien aus Sicherheitsgründen versteckt. Wenn es für eine Verwaltungs- oder Supportaufgabe erforderlich ist, diese zu sehen, können wir den folgenden Befehl mit dem gewünschten Pfad ausführen, in diesem Fall home:

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

Dateien eines Benutzers suchenEine weitere der vielen Optionen, die uns der Find-Befehl bietet, besteht darin, die Dateien eines bestimmten Benutzers zu erkennen, zum Beispiel um alle Dateien des Solvtic-Benutzers im Home-Verzeichnis zu finden.

 find / home -user solvtic

Dateien aus einer bestimmten Gruppe suchenUm die Elemente einer Gruppe zu finden, führen wir die folgende Zeile aus:

 find / home-group solvtic

5. Finden Sie Dateien in einem Zeitbereich mit Befehlen in Linux

Schritt 1
Mit dem Befehl Suchen ist es möglich, die Dateien zu durchsuchen, die in einem bestimmten Zeitraum verwendet wurden, um beispielsweise die Dateien der letzten 30 Tage anzuzeigen, die geändert wurden, die wir ausführen können:

 find / -mtime 30 

Schritt 2
Um die Dateien anzuzeigen, die den Zugriff angezeigt haben, führen wir Folgendes aus:

Schritt 3
Um die Dateien anzuzeigen, die in einem Bereich von Tagen geändert wurden, z. B. zwischen 1 und 5, verwenden wir die folgende Zeile:

 finden / -mZeit +1 -mZeit -5

Schritt 4
Wenn wir die Dateien sehen möchten, die in den letzten Stunden oder Minuten Änderungen gezeigt haben, können wir Folgendes ausführen:

 finden / -cmin -45
Schritt 5
Dies listet die Dateien der letzten 45 Minuten auf:

Schritt 6
Ebenso können wir die Dateien auflisten, auf die in einem bestimmten Zeitraum zugegriffen wurde:

 finden / -amin -60 

6. Finden Sie Dateien einer bestimmten Größe mit Befehlen in Linux

Schritt 1
Es ist möglich, eine Dateigröße innerhalb der Suchkriterien zu definieren, um alle Dateien mit einem Gewicht von 10 MB anzuzeigen, führen wir aus:

 finden / -Größe 10M

Schritt 2
Um einen Gewichtsbereich festzulegen, verwenden wir:

 finden / -Größe + 15M -Größe -90M

Schritt 3
Wenn wir aus irgendeinem Grund eine Datei mit einer bestimmten Größe erkennen und löschen möchten, verwenden wir die folgende Syntax:

 find / -size + 200M -exec rm -rf {} \;
NotizDie Version von find in Unix weist mehrere Mängel auf, daher müssen wir unseren Befehl ändern, um das gewünschte Ergebnis zu erzielen, zum Beispiel:

  • Unter Linux
 finden. -Größe 50M | xargs ls -l
  • Unter Unix
 finden. -Größe 50M -print0 | xargs -0 ls -l 
Auf der Skriptebene sind alle Ergebnisse mit find positiv, unabhängig davon, ob wir Ergebnisse erhalten oder nicht. Unter Linux haben wir die Option -print -quit, falls keine Ergebnisse angezeigt werden.

In der Unix-Version von Find fehlt diese Option und es ist am besten, sie zusammen mit grep zu verwenden, um beispielsweise das Ergebnis zu überprüfen.

 read -r a if find. -maxdepth 1 -name "$ a" -print -quit | grep -q. dann echo "Datei gefunden" else echo "Keine Datei gefunden" if

7. Unter Linux grafisch nach Dateien suchen


Aktuelle Linux-Distributionen mit grafischer Umgebung (GUI) bieten uns die Möglichkeit, über die integrierte Suchmaschine die gewünschten Dateien einfach zu finden, bei Ubuntu 19.04 können wir auf Dateien zugreifen und im Suchfeld den gewünschten Begriff eingeben sofort die zugehörigen Ergebnisse anzeigen:

VERGRÖSSERN

Wir sehen, dass die Suche nach Dateien in Linux dank des Find-Befehls und seiner verschiedenen Variationen wirklich vollständig ist, um die besten Ergebnisse zu erzielen.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave