Dateien nach Eigentümerschaft, Berechtigungen, Größe und Zeit finden
In diesem Schritt lernen Sie, wie Sie den leistungsstarken Befehl find
verwenden, um Dateien basierend auf verschiedenen Kriterien zu finden, die über ihren Namen hinausgehen. Dazu gehört die Suche nach Eigentümerschaft, Berechtigungen, Größe und Änderungszeit. Diese erweiterten Suchfunktionen sind für Systemadministrationsaufgaben wie Auditing, Bereinigung und Fehlerbehebung unerlässlich.
Dateien nach Eigentümerschaft finden
Sie können nach Dateien suchen, die einem bestimmten Benutzer oder einer bestimmten Gruppe gehören, indem Sie die Optionen -user
bzw. -group
verwenden. Sie können den Benutzer-/Gruppennamen oder ihre numerische ID angeben.
Suchen wir nach allen Dateien in Ihrem Home-Verzeichnis (~
), die dem Benutzer labex
gehören.
find ~ -user labex
Dadurch werden viele Dateien aufgelistet, einschließlich Ihrer Konfigurationsdateien:
/home/labex
/home/labex/.bash_logout
/home/labex/.bash_profile
/home/labex/.bashrc
/home/labex/.config
/home/labex/.config/xfce4
/home/labex/.config/xfce4/xfconf
/home/labex/.config/xfce4/xfconf/xfce-perchannel-xml
/home/labex/.local
/home/labex/.local/share
/home/labex/.local/share/nano
/home/labex/project
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
...output omitted...
Um nach Dateien zu suchen, die der Gruppe labex
gehören:
find ~ -group labex
Die Ausgabe ist ähnlich, da labex
typischerweise die primäre Gruppe für den Benutzer labex
ist.
Sie können auch nach Benutzer-ID (UID) oder Gruppen-ID (GID) suchen. Der Benutzer labex
hat typischerweise eine UID und GID von 1000
.
find ~ -uid 1000
find ~ -gid 1000
Dateien nach Berechtigungen finden
Mit der Option -perm
des Befehls find
können Sie nach Dateien mit bestimmten Berechtigungen suchen. Berechtigungen können im Oktalmodus (z. B. 755
) oder im symbolischen Modus (z. B. u=rwx,g=rx,o=rx
) angegeben werden.
Erstellen wir eine Testdatei in Ihrem Verzeichnis ~/project
mit bestimmten Berechtigungen.
touch ~/project/permission_test.txt
chmod 644 ~/project/permission_test.txt
Suchen wir nun nach Dateien in ~/project
, die genau die Berechtigungen 644
haben.
find ~/project -perm 644
Sie sollten permission_test.txt
aufgelistet sehen:
/home/labex/project/permission_test.txt
Sie können auch ein führendes /
oder -
mit den oktalen Berechtigungen verwenden:
/
: Passt, wenn irgendwelche der angegebenen Berechtigungsbits gesetzt sind.
-
: Passt, wenn alle der angegebenen Berechtigungsbits gesetzt sind.
Suchen wir nach Dateien in ~/project
, bei denen andere mindestens Leseberechtigung haben (o=r
oder 004
).
find ~/project -perm -004
Dadurch werden permission_test.txt
und andere Dateien aufgelistet, die anderen Lesezugriff gewähren.
/home/labex/project/permission_test.txt
...output omitted...
Dateien nach Größe finden
Mit der Option -size
können Sie nach Dateien basierend auf ihrer Größe suchen. Sie können die Größe mit Einheiten (z. B. k
für Kilobyte, M
für Megabyte, G
für Gigabyte) angeben. Sie können auch +
für "größer als" und -
für "kleiner als" verwenden.
Suchen wir nach Dateien in Ihrem Verzeichnis ~/project/test_data
, die genau 1 Kilobyte groß sind.
find ~/project/test_data -size 1k
Sie sollten file1.txt
sehen:
/home/labex/project/test_data/file1.txt
Suchen Sie nun nach Dateien, die größer als 5 Kilobyte sind.
find ~/project/test_data -size +5k
Dies sollte file3.txt
auflisten:
/home/labex/project/test_data/file3.txt
Und Dateien, die kleiner als 10 Kilobyte sind.
find ~/project/test_data -size -10k
Dies sollte file1.txt
und file2.txt
auflisten:
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
Dateien nach Änderungszeit finden
Sie können nach Dateien basierend auf ihrer Änderungszeit suchen, indem Sie Optionen wie -mmin
(vor Minuten geändert) oder -mtime
(vor Tagen geändert) verwenden.
Suchen wir nach Dateien in Ihrem Verzeichnis ~/project
, die in den letzten 60 Minuten geändert wurden.
find ~/project -mmin -60
Dies umfasst wahrscheinlich permission_test.txt
und die Dateien in test_data
, wenn Sie sie kürzlich erstellt haben:
/home/labex/project
/home/labex/project/permission_test.txt
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
Um Dateien zu finden, die vor mehr als 1 Tag (24 Stunden) geändert wurden, können Sie +1
mit -mtime
verwenden.
find ~/project -mtime +1
Dieser Befehl gibt möglicherweise keine Dateien zurück, wenn alle Ihre ~/project
-Dateien kürzlich erstellt oder geändert wurden.
Diese Optionen können kombiniert werden, um sehr spezifische Suchabfragen zu erstellen, mit denen Sie Dateien auf Ihrem System effizient verwalten können.