So verwenden Sie den Befehl “Suchen” unter Linux

Unbenanntes design.jpg

Was ist Finden?

Wie immer wird in einer kurzen Einführung in den Befehl Wikipedia für seine Definition zitiert:

“find” ist ein auf Unix – Systemen gebräuchlicher Befehl, der verwendet wird, um Dateien in einem bestimmten Verzeichnis anhand verschiedener Suchregeln zu finden, z. B. exakter Dateiname, Erstellungsdatum, Größe, Berechtigungen usw., die sehr flexibel werden und Eines der nützlichsten Tools in der Systemadministration, wenn Sie wissen, wie man es verwendet.
Auf GNU / Linux-Systemen ist es Teil des findutils-Pakets. ”

Die Verwendung von ” Suchen” ist sehr umfangreich. Ich werde das Tutorial in fünf Teile unterteilen und die Suchen nach Namen, Berechtigungen, Benutzern, Gruppen und Größe sortieren.

  • Teil 1. Einfache Suche nach dem Namen der Datei / des Verzeichnisses.
  • Teil 2. Suchen Sie nach Dateien basierend auf Ihren Berechtigungen.
  • Teil 3. Suche nach Benutzern und Gruppen filtern.
  • Teil 4. Führen Sie eine Suche basierend auf Daten durch.
  • Teil 5. Suchen Sie nach Dateien und Verzeichnissen anhand ihrer Größe.

Ich werde einige reale Beispiele verwenden, die in Ihrem Alltag vorkommen können, um die Suche nach Dateien und Verzeichnissen zu beschleunigen. Dies sind Beispiele, die Sie in Ihrem Alltag verwenden können und die Sie sogar in Skripten verwenden können, um einige Aufgaben zu automatisieren.

1. Einfache Suche nach dem Namen der Datei / des Verzeichnisses

Suchen Sie alle Dateien mit dem Namen solvetic.txt in dem Verzeichnis, in dem Sie sich befinden.

 finden -name solvetic.txt 

Durchsuchen Sie alle Dateien mit dem Namen solvetic.txt im Verzeichnis / home

 find / home-name solvetic.txt 

Suchen Sie alle Dateien mit dem Namen solvetic.txt in / home, unabhängig von Groß- oder Kleinschreibung.

 find / home -iname solvetic.txt 

Durchsuchen Sie alle Verzeichnisse mit dem Namen solvetic im gesamten System.

 find / -type d -name solvetic 

Suche nur die PHP-Dateien mit dem Namen TechnoWikis im aktuellen Verzeichnis.

 finden -type f -name solvetic.php 

Suche alle PHP-Dateien im aktuellen Verzeichnis

 finden -type f -name "* .php" 

Gehen wir nun zu Teil 2, in dem nach Berechtigungen gesucht wird.

2. Suchen Sie anhand Ihrer Berechtigungen nach Dateien

Suchen Sie nach allen Dateien im aktuellen Verzeichnis, die über 777 Berechtigungen verfügen

 finden -type f -perm 0777 -print 

Durchsuchen Sie alle Dateien auf dem System, die keine 644-Berechtigungen haben

 find / -type f! -perm 644 

Durchsuchen Sie alle Dateien mit der SGID 644

 find / -perm 2644 

Durchsuchen Sie alle Dateien mit Sticky , die über Berechtigungen 551 im gesamten System verfügen.

 find / -perm 1551 

Durchsuchen Sie alle Dateien mit speziellen Benutzerberechtigungen ( SUID )

 find / -perm / u = s 

Durchsuchen Sie alle Dateien mit SGID- Berechtigungen (Special Groups).

 find / -perm / g + s 

Durchsuchen Sie alle Dateien, die Schreibgeschützt sind

 find / -perm / u = r 

Suchen Sie nach allen Dateien, die über ausführbare Berechtigungen verfügen.

 find / -perm / a = x 

Durchsuchen Sie alle Dateien mit den Berechtigungen 777 und ändern Sie sie mit chmod in 644.

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

Durchsuche alle Verzeichnisse mit 775 Berechtigungen und ändere sie mit chmod auf 644

 find / -type d -perm 775 -print -exec chmod 644 {} ; 

Suchen Sie die Dateien mit dem Namen solvetic.txt im aktuellen Verzeichnis und löschen Sie sie mit rm.

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

Löschen Sie alle Dateien in einem Verzeichnis mit derselben Erweiterung

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

Durchsuchen Sie alle leeren Dateien in einem bestimmten Verzeichnis.

 finde / etc / html / www / -type f -leer #Extrem nützlich 

Suche nach leeren Verzeichnissen in einem bestimmten Pfad (Unterordner sind enthalten).

 find / etc -type d -leer 

Suche alle versteckten Dateien in einem bestimmten Verzeichnis.

 find / tmp -type f -name ". *" #Alles, mit dem Sie beginnen, wird durchsucht. 

Nun geht es mit dem Suchfilter weiter.

3. Filtern Sie die Suche nach Benutzern und Gruppen

Durchsuchen Sie alle Dateien und Verzeichnisse mit dem Namen solvetic, die dem Root-Benutzer gehören.

 find / -user root -name solvetic 

Durchsuchen Sie alle Dateien, die dem Benutzer so und so gehören, in allen Home-Verzeichnissen des Systems.

 find / home -user fulanito 

Durchsuchen Sie alle Dateien im System, die zur Administratorgruppe gehören

 find / -group admin 

Durchsuchen Sie alle TXT-Dateien des Benutzers jcarrillo im Ausgangsverzeichnis.

 find / home -user jcarrillo -iname "* .txt" 

Jetzt gehen wir mit Suchen mit Daten.

4. Führen Sie die Suche nach Datum durch

Durchsuchen Sie die geänderten Dateien der letzten 50 Tage.

 find / -mtime 50 

Durchsuchen Sie alle Dateien, die in den letzten 50 Tagen angezeigt oder geöffnet wurden, unabhängig davon, ob sie geändert wurden oder nicht.

 find / -atime 50 

Durchsuchen Sie die geänderten Dateien zwischen 50 und 100 Tagen.

 find / -mtime +50 -mtime -100 
Wichtig
Dies ist ein sehr nützlicher Befehl, wenn Sie von einem Hacker angegriffen wurden und sehen möchten, was geändert wurde. Er wird in Tagen, Stunden und Sekunden angewendet.

 find / -amin -60 

Mit diesem letzten Befehl werden die Dateien angezeigt, auf die in der letzten Stunde zugegriffen wurde.

5. Suchen Sie anhand ihrer Größe nach Dateien und Verzeichnissen

Suchen Sie nach Dateien, die genau 50 MB wiegen.

 find / -size 50M 

Suchen Sie Dateien zwischen 50 MB und 100 MB

 find / -size + 50MB -size -100M 

Suchen und Löschen von Dateien, die größer als 100 MB sind (Vorsicht bei diesem Befehl kann es schwierig sein).

 find / -size + 100M -exec rm -rf {} ; 

Durchsuchen Sie alle MP3-Dateien mit mehr als 10 MB und löschen Sie sie.

 find / -type f -name * .mp3 -size + 10M -exec rm {} ; 

Zum Schluss sehen wir uns den Befehl find in Unix an.

6. So verwenden Sie den Befehl “Suchen” in Unix

Die Version von find in Unix weist mehrere Fehler auf, daher müssen wir unseren Befehl ändern, um das gewünschte Ergebnis zu erzielen. Beispiel:

Linux
 finden 50M | xargs ls -l 
Unix
 finden -size 50M -print0 | xargs -0 ls -l 

Auf der Scriptebene 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 erzielt werden.

See also  Datenbankverwaltung mit Sinatra

In der Version von Find in Unix fehlt diese Option. Verwenden Sie sie am besten neben grep, um beispielsweise das Ergebnis zu überprüfen.

 lies -ra wenn finden. -maxtiefe 1 -name "$ a" -print -quit | grep -q. dann Echo "Datei gefunden" sonst echo "Es wurde keine Datei gefunden" fi 

Dies bestätigte das Ergebnis.

Der Befehl ist für eine unendliche Anzahl von Situationen erforderlich und jeder Systemadministrator muss wissen, wie er verwendet wird. Wir haben verschiedene Situationen erlebt und kombinieren ihn mit Bash- und Wildcards. Wir haben ein sehr leistungsfähiges Tool, mit dem wir Bereinigungsskripte, Organisation und Backup erstellen können.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *