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.