Datei-Rechte in Linux ändern und verwalten [Terminal]
Inhaltsverzeichnis:
- Linux
find
Befehlssyntax - Dateien nach Namen suchen
- Dateien nach Erweiterung suchen
- Dateien nach Typ suchen
- Dateien nach Größe suchen
- Dateien nach Änderungsdatum suchen
- Suchen von Dateien nach Berechtigungen
- Dateien nach Besitzer suchen
- Dateien suchen und löschen
- Fazit
Der Befehl
find
ist eines der leistungsstärksten Tools im Linux-Systemadministrator-Arsenal. Es sucht nach Dateien und Verzeichnissen in einer Verzeichnishierarchie basierend auf einem vom Benutzer angegebenen Ausdruck und kann benutzerdefinierte Aktionen für jede übereinstimmende Datei ausführen.
Mit dem Befehl
find
können Sie nach Dateien und Verzeichnissen suchen, die auf Berechtigungen, Typ, Datum, Eigentümer, Größe usw. basieren. Es kann auch in Kombination mit anderen Tools wie
grep
oder
sed
.
Linux
find
Befehlssyntax
Die allgemeine Syntax für den Befehl
find
lautet wie folgt:
find
- Das
options
Attribut steuert die Behandlung der symbolischen Links, der Debugging-Optionen und der Optimierungsmethode. Daspath…
-Attribut definiert das Startverzeichnis oder die Verzeichnisse, in denen find die Dateien durchsucht. Dasexpression
Attribut besteht aus Optionen, Suchmustern und durch Bediener getrennte Aktionen.
Um in einem Verzeichnis nach Dateien zu suchen, muss der Benutzer, der
find
Befehl
find
aufruft, über Leseberechtigungen für dieses Verzeichnis verfügen.
Schauen wir uns das folgende Beispiel an:
find -L /var/www -name "*.js"
- Die Option
-L
(options) weist den Befehlfind
an, symbolischen Links zu folgen. Das Verzeichnis/var/www
(path…) gibt das zu durchsuchende Verzeichnis an. Der (Ausdruck)-name "*.js
weistfind
an, nach Dateien zu suchen, die auf enden.js
(JavaScript-Dateien).
Dateien nach Namen suchen
Das Suchen von Dateien nach Namen ist wahrscheinlich die häufigste Verwendung des Befehls
find
. Um eine Datei anhand ihres Namens zu finden, verwenden Sie die Option
-name
nach dem Namen der
-name
Datei.
Um beispielsweise nach einer Datei mit dem Namen
document.pdf
im Verzeichnis
/home/linuxize
Sie den folgenden Befehl:
find /home/linuxize -type f -name document.pdf
Um eine Suche ohne
-name
Groß- und Kleinschreibung durchzuführen, ändern Sie die Option
-iname
mit
-iname
:
find /home/linuxize -type f -iname document.pdf
Der obige Befehl stimmt mit "Document.pdf", "DOCUMENT.pdf" usw. überein.
Dateien nach Erweiterung suchen
Das Suchen nach Dateien anhand der Erweiterung entspricht dem Suchen nach Dateien anhand des Namens. Um beispielsweise alle Dateien mit der Endung
.log.gz
im
.log.gz
/var/log/nginx
zu finden, können Sie
.log.gz
verwenden:
find /var/log/nginx -type f -name '*.log.gz'
Es ist wichtig zu erwähnen, dass Sie bei Verwendung des Platzhalterzeichens entweder das Muster in Anführungszeichen setzen oder das Sternchen
*
mit einem Backslash
\
maskieren müssen, damit es von der Shell nicht interpretiert wird.
Mit der Option
-not
können Sie alle Dateien finden, die nicht mit der
*.log.gz
. Um beispielsweise alle Dateien zu finden, die nicht mit
*.log.gz
, würden Sie
*.log.gz
verwenden:
find /var/log/nginx -type f -not -name '*.log.gz'
Dateien nach Typ suchen
Manchmal müssen Sie möglicherweise nach bestimmten Dateitypen suchen, z. B. nach normalen Dateien, Verzeichnissen oder Symlinks. In Linux ist alles eine Datei.
Verwenden Sie zum Suchen nach Dateien anhand ihres Typs die Option
-type
und einen der folgenden Deskriptoren, um den Dateityp anzugeben:
-
f
: eine reguläre Dateid
: Verzeichnisl
: symbolische Verknüpfungc
: Zeichengeräteb
: Blockgerätep
: Named Pipe (FIFO)s
: Socket
Um beispielsweise alle Verzeichnisse im aktuellen Arbeitsverzeichnis zu finden, würden Sie Folgendes verwenden:
find. -type d
Das übliche Beispiel wäre, die Dateiberechtigungen der Website rekursiv in
644
und die Verzeichnisberechtigungen in
755
zu ändern, indem Sie den Befehl
chmod
:
find /var/www/my_website -type d -exec chmod 0755 {} ;
find /var/www/my_website -type f -exec chmod 0644 {} ;
Dateien nach Größe suchen
-size
zum Suchen von Dateien anhand der Dateigröße den Parameter
-size
zusammen mit den Größenkriterien. Sie können die folgenden Suffixe verwenden, um die Dateigröße anzugeben:
-
b
: 512-Byte-Blöcke (Standard)c
: Bytesw
: Zwei-Byte-Wörterk
: KilobytesM
: MegabytesG
: Gigabytes
Der folgende Befehl findet alle Dateien mit genau
1024
Bytes im Verzeichnis
/tmp
:
find /tmp -type f -size 1024c
Mit dem Befehl
find
können Sie auch nach Dateien suchen, die größer oder kleiner als eine angegebene Größe sind.
Im folgenden Beispiel suchen wir nach allen Dateien mit weniger als 1
1MB
im aktuellen Arbeitsverzeichnis. Beachten Sie das Minuszeichen vor dem Größenwert:
find. -type f -size -1M
find. -type f -size +1M
Sie können sogar nach Dateien in einem Größenbereich suchen. Der folgende Befehl findet alle Dateien zwischen
1
und
2MB
:
find. -type f -size +1M -size 21M
Dateien nach Änderungsdatum suchen
Der Befehl
find
kann auch anhand der letzten Änderung, des letzten Zugriffs oder der letzten Änderungszeit nach Dateien suchen.
Verwenden Sie wie bei der Suche nach Größe die Plus- und Minuszeichen für „größer als“ oder „kleiner als“.
Nehmen wir an, Sie haben vor ein paar Tagen eine der Dovecot-Konfigurationsdateien geändert, aber vergessen, welche. Sie können problemlos alle Dateien im Verzeichnis
/etc/dovecot/conf.d
, die mit
.conf
und in den letzten fünf Tagen geändert wurden mit:
find /etc/dovecot/conf.d -name "*.conf" -mtime 5
Hier ist ein weiteres Beispiel für das Filtern von Dateien anhand des Änderungsdatums mit der Option
-daystart
. Der folgende Befehl listet alle Dateien im Verzeichnis
/home
, die vor
30
oder mehr Tagen geändert wurden:
find /home -mtime +30 -daystart
Suchen von Dateien nach Berechtigungen
Mit der Option
-perm
können Sie anhand der Dateiberechtigungen nach Dateien suchen.
Um beispielsweise alle Dateien mit Berechtigungen von genau
775
im Verzeichnis
/var/www/html
, verwenden Sie Folgendes:
find /var/www/html -perm 644
Sie können dem numerischen Modus ein Minuszeichen oder einen Schrägstrich
/
voranstellen.
Wenn der Schrägstrich
/
als Präfix verwendet wird, müssen für mindestens eine Kategorie (Benutzer, Gruppe oder andere) mindestens die entsprechenden Bits gesetzt sein, damit eine Datei übereinstimmt.
Betrachten Sie den folgenden Beispielbefehl:
find. -perm /444
Mit dem obigen Befehl werden alle Dateien mit Leseberechtigungen abgeglichen, die entweder für Benutzer, Gruppen oder andere festgelegt wurden.
Wenn Minus
-
als Präfix verwendet wird, muss festgelegt werden, dass die Datei mindestens den angegebenen Bits entspricht. Der folgende Befehl sucht nach Dateien, die über Lese- und Schreibberechtigungen für den Eigentümer und die Gruppe verfügen und von anderen Benutzern gelesen werden können:
Dateien nach Besitzer suchen
Verwenden Sie die Optionen
-user
und
-user
um Dateien zu finden, die einem bestimmten Benutzer oder einer bestimmten Gruppe gehören.
Um beispielsweise nach allen Dateien und Verzeichnissen zu suchen, die dem Benutzer
linuxize
, führen Sie
linuxize
aus:
find / -user linuxize
Hier ist ein reales Beispiel. Angenommen, Sie möchten alle Dateien finden, deren Eigentümer der Benutzer
www-data
und den Eigentümer der übereinstimmenden Dateien von
www-data
in
nginx
ändern:
find / -user www-data -type f -exec chown nginx {} ;
Dateien suchen und löschen
Um alle übereinstimmenden Dateien zu löschen,
-delete
Option
-delete
an das Ende des Übereinstimmungsausdrucks an.
Stellen Sie sicher, dass Sie diese Option nur verwenden, wenn Sie sicher sind, dass das Ergebnis mit den zu löschenden Dateien übereinstimmt. Es ist immer eine gute Idee, die übereinstimmenden Dateien zu drucken, bevor Sie die Option
-delete
.
Um beispielsweise alle Dateien mit der Endung
.temp
aus dem
.temp
/var/log/
zu löschen, würden Sie
.temp
verwenden:
find /var/log/ -name `*.temp` -delete
Verwenden Sie die Option
-delete
mit äußerster Vorsicht. Die
-delete
wird als Ausdruck ausgewertet. Wenn Sie
-delete
Option
-delete
hinzufügen,
-delete
der Befehl alle
-delete
unterhalb der angegebenen Startpunkte.
Wenn es um Verzeichnisse geht
find
kann
find
nur leere Verzeichnisse wie
rmdir
löschen.
Fazit
Wir haben Ihnen gezeigt, wie Sie den Befehl
find
mit verschiedenen Optionen und Kriterien verwenden.
Dieser Artikel soll Ihnen ein grundlegendes Verständnis dafür vermitteln, wie Sie Dateien auf Ihren Linux-Systemen finden. Sie können auch die
find
besuchen und sich über alle anderen leistungsstarken Optionen des Befehls
find
informieren.
So erstellen Sie eine MySQL-Datenbank unter Linux über die Befehlszeile
In diesem Tutorial wird erklärt, wie Sie mithilfe der Befehlszeile MySQL- oder MariaDB-Datenbanken erstellen.
So löschen Sie eine MySQL-Datenbank unter Linux über die Befehlszeile
In diesem Tutorial wird beschrieben, wie Sie eine MySQL- oder MariaDB-Datenbank über die Befehlszeile löschen (oder löschen).
So entfernen Sie Dateien und Verzeichnisse mit der Linux-Befehlszeile
In diesem Tutorial zeigen wir Ihnen anhand von Beispielen und Erklärungen der gebräuchlichsten rm-Optionen, wie Sie mit dem Befehl rm Dateien und Verzeichnisse entfernen.