Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Linux findet 15 häufig verwendete Befehle

Linux findet 15 häufig verwendete Befehle

巴扎黑
巴扎黑Original
2017-08-10 11:10:472094Durchsuche

[Einführung] Zusätzlich zum grundlegenden Vorgang der Suche nach Dateien in einer Verzeichnisstruktur können Sie mit dem Befehl „find“ auch einige praktische Vorgänge ausführen, um Ihre Befehlszeilenreise zu vereinfachen. In diesem Artikel werden 15 Linux-Suchbefehle vorgestellt, die sowohl für Anfänger als auch für Veteranen sehr nützlich sind. Erstellen Sie zunächst

in Ihrem Home-Verzeichnis. Zusätzlich zu grundlegenden Vorgängen wie der Suche nach Dateien in einer Verzeichnisstruktur können Sie auch einige praktische Vorgänge ausführen, um Ihre Befehlszeilenreise zu vereinfachen.

In diesem Artikel werden 15 Linux-Suchbefehle vorgestellt, die sowohl für Anfänger als auch für Veteranen sehr nützlich sind.

Erstellen Sie zunächst die folgende leere Datei in Ihrem Home-Verzeichnis, um das folgende Suchbefehlsbeispiel zu testen.

01 # vim create_sample_files.sh
02 touch MybashProgram.sh
03 touch mycprogram.c
04 touch MyCProgram.c
05 touch Program.c
06  
07 mkdir backup
08 cd backup
09  
10 touch MybashProgram.sh
11 touch mycprogram.c
12 touch MyCProgram.c
13 touch Program.c
14  
15 # chmod +x create_sample_files.sh
16  
17 # ./create_sample_files.sh
18  
19 # ls -R
20 .:
21 backup                  MybashProgram.sh  MyCProgram.c
22 create_sample_files.sh  mycprogram.c      Program.c
23  
24 ./backup:
25 MybashProgram.sh  mycprogram.c  MyCProgram.c  Program.c

1 Suchen Sie eine Datei anhand ihres Namens

Dies ist eine der Befehle finden Grundlegende Verwendung. Das folgende Beispiel zeigt, wie MyCProgram.c als Suchname verwendet wird, um Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen zu finden.

1 # find -name "MyCProgram.c"
2 ./backup/MyCProgram.c
3 ./MyCProgram.c

2. Dateien nach Dateinamen suchen, Groß- und Kleinschreibung ignorieren

Dies ist eine grundlegende Verwendung des Suchbefehls. Das folgende Beispiel zeigt, wie Sie Dateien im aktuellen Verzeichnis und seinen Unterverzeichnissen finden, indem Sie MyCProgram.c als Suchnamen verwenden und dabei die Groß-/Kleinschreibung ignorieren.

1 # find -iname "MyCProgram.c"
2 ./mycprogram.c
3 ./backup/mycprogram.c
4 ./backup/MyCProgram.c
5 ./MyCProgram.c

3. Begrenzen Sie die Tiefe der Suche für das angegebene Verzeichnis mit min Depth und max Depth.

Suchen Sie die passwd-Datei im Stammverzeichnis und seine Unterverzeichnisse.

1 # find / -name passwd
2 ./usr/share/doc/nss_ldap-253/pam.d/passwd
3 ./usr/bin/passwd
4 ./etc/pam.d/passwd
5 ./etc/passwd

Suchen Sie im Stammverzeichnis und einem Unterverzeichnis eine Ebene tiefer (z. B. Stammverzeichnis – Ebene 1 und ein Unterverzeichnis – Ebene 2)

1 # find -maxdepth 2 -name passwd
2 ./etc/passwd

Suchen Sie nach der passwd-Datei im Stammverzeichnis und seinen Unterverzeichnissen bis zu zwei Ebenen tief (z. B. Stammverzeichnis – Ebene 1 und zwei Unterverzeichnisse – Ebene 2 und 3)

1 # find / -maxdepth 3 -name passwd
2 ./usr/bin/passwd
3 ./etc/pam.d/passwd
4 ./etc/passwd

Suchen Sie nach der passwd-Datei zwischen dem Unterverzeichnis der zweiten Ebene und dem Unterverzeichnis der vierten Ebene.

1 # find -mindepth 3 -maxdepth 5 -name passwd
2 ./usr/bin/passwd
3 ./etc/pam.d/passwd

4. Führen Sie den Befehl für die mit dem Suchbefehl gefundene Datei aus.

Das folgende Beispiel zeigt den Suchbefehl zur Berechnung aller Dateinamen, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird Prüfsumme für die Datei „MyCProgram.c“. {} wird durch den aktuellen Dateinamen ersetzt.

1 find -iname "MyCProgram.c" -exec md5sum {} ;
2 d41d8cd98f00b204e9800998ecf8427e  ./mycprogram.c
3 d41d8cd98f00b204e9800998ecf8427e  ./backup/mycprogram.c
4 d41d8cd98f00b204e9800998ecf8427e  ./backup/MyCProgram.c
5 d41d8cd98f00b204e9800998ecf8427e  ./MyCProgram.c

5 Im Gegensatz dazu werden beim Abgleichen von

alle Dateien oder Verzeichnisse angezeigt, deren Namen nicht MyCProgram.c sind. Da max Depth 1 ist, werden nur Dateien und Verzeichnisse im aktuellen Verzeichnis angezeigt.

1 find -maxdepth 1 -not -iname "MyCProgram.c"
2 .
3 ./MybashProgram.sh
4 ./create_sample_files.sh
5 ./backup
6 ./Program.c

6. Dateien mithilfe von Inode-Nummern finden

Jede Datei hat eine eindeutige Inode-Nummer, sodass wir sie unterscheiden können Dateien. Erstellen Sie zwei Dateien mit ähnlichen Namen, beispielsweise eine mit nachgestellten Leerzeichen und eine ohne.

1 touch "test-file-name"
2  
3 # touch "test-file-name "
4 [Note: There is a space at the end]
5  
6 # ls -1 test*
7 test-file-name
8 test-file-name

Aus der Ausgabe von ls ist es nicht möglich zu unterscheiden, welche Datei ein nachgestelltes Leerzeichen hat. Mit der Option -i können Sie die Inode-Nummer der Datei sehen und so die beiden Dateien unterscheiden.

1 ls -i1 test*
2 16187429 test-file-name
3 16187430 test-file-name

Sie können die Inode-Nummer im Suchbefehl wie unten gezeigt angeben. Hier benennt der Befehl „find“ eine Datei mit der Inode-Nummer um.

1 find -inum 16187430 -exec mv {} new-test-file-name ;
2  
3 # ls -i1 *test*
4 16187430 new-test-file-name
5 16187429 test-file-name


Sie können diese Technik verwenden, wenn Sie etwas mit einer schlecht benannten Datei wie der oben genannten tun möchten. Die Datei mit dem Namen file?.txt enthält beispielsweise ein Sonderzeichen im Namen. Wenn Sie „rm file?.txt“ ausführen möchten, werden alle drei unten angezeigten Dateien gelöscht. Führen Sie also die folgenden Schritte aus, um die Datei „file?.txt“ zu löschen.

1 ls
2 file1.txt  file2.txt  file?.txt

Finden Sie die Inode-Nummer jeder Datei.

1 ls -i1
2 804178 file1.txt
3 804179 file2.txt
4 804180 file?.txt

lautet wie folgt: Verwenden Sie die Inode-Nummer, um diese Dateinamen mit speziellen Symbolen zu entfernen.

1 find -inum 804180 -exec rm {} ;
2  
3 # ls
4 file1.txt  file2.txt
5 [Note: The file with name "file?.txt" is now removed]

7. Suchen Sie Dateien basierend auf Dateiberechtigungen

Die folgenden Vorgänge sind sinnvoll:

  • Suchen Sie die Datei mit den angegebenen Berechtigungen

  • Ignorieren Sie andere Berechtigungsbits und prüfen Sie, ob sie mit den angegebenen Berechtigungen übereinstimmt

  • Entsprechend den Angaben oktal/ Symbolausdruck-Berechtigungssuche

In diesem Beispiel wird davon ausgegangen, dass das Verzeichnis die folgenden Dateien enthält. Beachten Sie, dass diese Dateien unterschiedliche Berechtigungen haben.

1 ls -l
2 total 0
3 -rwxrwxrwx 1 root root 0 2009-02-19 20:31 all_for_all
4 -rw-r--r-- 1 root root 0 2009-02-19 20:30 everybody_read
5 ---------- 1 root root 0 2009-02-19 20:31 no_for_all
6 -rw------- 1 root root 0 2009-02-19 20:29 ordinary_file
7 -rw-r----- 1 root root 0 2009-02-19 20:27 others_can_also_read
8 ----r----- 1 root root 0 2009-02-19 20:27 others_can_only_read

Datei mit Gruppenleseberechtigungen gefunden. Verwenden Sie den folgenden Befehl, um Dateien im aktuellen Verzeichnis zu finden, die Leseberechtigungen für Benutzer in derselben Gruppe haben, und ignorieren Sie dabei andere Berechtigungen für die Datei.

1 find . -perm -g=r -type f -exec ls -l {} ;
2 -rw-r--r-- 1 root root 0 2009-02-19 20:30 ./everybody_read
3 -rwxrwxrwx 1 root root 0 2009-02-19 20:31 ./all_for_all
4 ----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read
5 -rw-r----- 1 root root 0 2009-02-19 20:27 ./others_can_also_read

Suchen Sie nach Dateien mit schreibgeschützten Berechtigungen für Gruppenbenutzer.

1 find . -perm g=r -type f -exec ls -l {} ;
2 ----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read

Suchen Sie nach Dateien, die nur Leseberechtigungen für Gruppenbenutzer haben (mithilfe des oktalen Berechtigungsformulars).

1 find . -perm 040 -type f -exec ls -l {} ;
2 ----r----- 1 root root 0 2009-02-19 20:27 ./others_can_only_read

8. Finden Sie alle leeren Dateien (0-Byte-Dateien) im Home-Verzeichnis und in den Unterverzeichnissen

Die meisten Ausgabedateien der folgenden Befehle sind gesperrte Dateiboxen Von anderen Programmen erstellte Hoders

1 find ~ -empty

listen nur leere Dateien in Ihrem Home-Verzeichnis auf.

1 find . -maxdepth 1 -empty


Es werden nur nicht versteckte leere Dateien im aktuellen Verzeichnis aufgelistet.

1 find . -maxdepth 1 -empty -not -name ".*"

9. Finden Sie die 5 größten Dateien

Der folgende Befehl listet die 5 größten Dateien im aktuellen Verzeichnis und in den Unterverzeichnissen auf. Dies kann eine Weile dauern, abhängig von der Anzahl der Dateien, die der Befehl verarbeiten muss.

1 find . -type f -exec ls -s {} ; | sort -n -r | head -5

10. Die Methode zum Suchen der 5 kleinsten Dateien

ähnelt der Methode zum Suchen der 5 größten Dateien. Der Unterschied besteht darin, dass die Sortierreihenfolge absteigend ist.

1 find . -type f -exec ls -s {} ; | sort -n  | head -5

Im obigen Befehl ist es sehr wahrscheinlich, dass Sie nur eine leere Datei (0-Byte-Datei) sehen. Sie können also den folgenden Befehl verwenden, um die kleinsten Dateien anstelle von 0-Byte-Dateien aufzulisten.

1 find . -not -empty -type f -exec ls -s {} ; | sort -n  | head -5

11. Verwenden Sie -type, um nach Dateien eines bestimmten Dateityps zu suchen

Nur ​​nach Socket-Dateien suchen

1 find . -type s

Nach allen Verzeichnissen suchen

1 find . -type d

Alle allgemeinen Dateien finden

1 find . -type f

Alle versteckten Dateien finden

1 find . -type f -name ".*"

Alle versteckten Verzeichnisse finden

1 find -type d -name ".*"

12 Dateien Änderungszeiten vergleichen, um Dateien zu finden

Zeigt Dateien an, die nach der angegebenen Datei geändert wurden. Der folgende Suchbefehl zeigt alle Dateien an, die nach „ordinary_file“ erstellt und geändert wurden. 13. Dateien nach Dateigröße suchen

01 ls -lrt
Verwenden Sie die Option -size, um Dateien nach Dateigröße zu suchen.
02 total 0
03 -rw-r----- 1 root root 0 2009-02-19 20:27 others_can_also_read
Dateien suchen, die größer als die angegebene Datei sind
04 ----r----- 1 root root 0 2009-02-19 20:27 others_can_only_read
05 -rw------- 1 root root 0 2009-02-19 20:29 ordinary_file

Dateien suchen, die kleiner als die angegebene Datei sind

1 find ~ -size -100M

Dateien finden, die der angegebenen Größe entsprechen

1 find ~ -size 100M

Hinweis: – bedeutet kleiner als die angegebene Größe, + bedeutet kleiner als die angegebene Größe Größe Große Größe. Kein Symbol zeigt genau die gleiche Größe wie eine bestimmte Größe an.

14. Geben Sie Aliasnamen für häufig verwendete Suchvorgänge an.

Wenn Sie etwas Nützliches finden, können Sie ihm einen Aliasnamen zuweisen. Und führen Sie es überall aus, wo Sie wollen.

Wird häufig zum Löschen von a.out-Dateien verwendet.

1 alias rmao="find . -iname a.out -exec rm {} ;"
2 # rmao

Löschen Sie die vom C-Programm generierte Kerndatei.

1 alias rmc="find . -iname core -exec rm {} ;"
2 # rmc

15. Verwenden Sie den Befehl „Suchen“, um große Paketdateien zu löschen.

Der folgende Befehl löscht *.zip-Dateien, die größer als 100 MB sind.

1 find / -type f -name *.zip -size +100M -exec rm -i {} ;"

Verwenden Sie den Alias ​​rm100m, um alle *.tar-Dateien von Heavy Rain 100M zu löschen. Mit der gleichen Idee können Sie einen Kategorienamen von rm1g, rm2g und rm5g erstellen, um alle Dateien zu löschen, die größer als 1G, 2G und 5G sind.

1 alias rm100m="find / -type f -name *.tar -size +100M -exec rm -i {} ;"
2 # alias rm1g="find / -type f -name *.tar -size +1G -exec rm -i {} ;"
3 # alias rm2g="find / -type f -name *.tar -size +2G -exec rm -i {} ;"
4 # alias rm5g="find / -type f -name *.tar -size +5G -exec rm -i {} ;"
5  
6 # rm100m
7 # rm1g
8 # rm2g
9 # rm5g

Befehlsbeispiel finden (Teil 2)

Das obige ist der detaillierte Inhalt vonLinux findet 15 häufig verwendete Befehle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn