Hauptoptionen
Versuchen Sie, Dateien im Dateisystem zu suchen und zu verarbeiten, indem Sie die verschiedenen Optionen des `find`-Kommandos kombinieren.
1. Grundlegende Suche
2. Zeitbedingungen
3. Größen- und Berechtigungsbedingungen
4. Aktionen
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`find` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Logische Operatoren
Das `find`-Kommando bietet logische Operatoren, um präzisere Suchen durch die Kombination mehrerer Bedingungen durchzuführen.
Operator | Beschreibung | Beispiel |
---|---|---|
-and (oder weggelassen) | Wenn sowohl die linke als auch die rechte Bedingung wahr sind | `find . -name "*.txt" -and -size +1M` |
-or | Wenn mindestens eine der linken oder rechten Bedingungen wahr ist | `find . -name "*.log" -or -name "*.tmp"` |
-not (oder !) | Wenn die Bedingung falsch ist | `find . -not -name "*.txt"` |
( ) | Bedingungen gruppieren (muss maskiert werden) | `find . \( -name "*.txt" -or -name "*.doc" \)` |
Operator-Rangfolge
Die Operatoren des `find`-Kommandos werden im Allgemeinen so ausgewertet, dass Aktionen (Actions) nach den Bedingungen (Expressions) verarbeitet werden. Innerhalb von Bedingungen können Klammern (`()`) verwendet werden, um die Rangfolge explizit festzulegen. Bei der Verwendung von Klammern müssen diese mit einem Backslash (`\`) maskiert werden, da sie in der Shell eine besondere Bedeutung haben.
Anwendungsbeispiele
Üben Sie die Dateisuche und -verwaltung anhand praktischer Anwendungsbeispiele des `find`-Kommandos.
Alle Dateien mit der Erweiterung '.log' im aktuellen Verzeichnis finden
find . -name "*.log"
Sucht nach allen Dateien, die im aktuellen Verzeichnis auf `.log` enden.
Dateien finden, die größer als 50 MB sind
find /var -size +50M
Sucht im Verzeichnis `/var` des Systems nach allen Dateien, die größer als 50 MB sind.
'conf'-Dateien finden, die innerhalb der letzten 7 Tage geändert wurden
find . -name "*.conf" -mtime -7
Sucht im aktuellen Verzeichnis nach `.conf`-Dateien, die innerhalb der letzten 7 Tage geändert wurden.
Alle Verzeichnisse mit der Zugriffsberechtigung 777 finden
find / -type d -perm 777
Sucht im gesamten System nach Verzeichnissen, deren Berechtigungen auf 777 gesetzt sind, um Sicherheitsrisiken zu überprüfen.
Alte '.tmp'-Dateien löschen
find /tmp -name "*.tmp" -mtime +30 -delete
Sucht im Verzeichnis `/tmp` nach allen `.tmp`-Dateien, die älter als 30 Tage sind, und löscht sie.
Ein bestimmtes Kommando für gefundene Dateien ausführen (chmod)
find . -name "*.sh" -exec chmod 755 {} \;
Erteilt allen Dateien mit der Erweiterung `.sh` im aktuellen Verzeichnis Ausführungsberechtigungen (755).
Dateien finden, die größer als 1 GB sind und einem bestimmten Benutzer gehören
find /home -user user1 -size +1G
Sucht im Verzeichnis `/home` nach Dateien, die dem Benutzer `user1` gehören und größer als 1 GB sind.