Heim > php教程 > PHP开发 > Detaillierte Erläuterung der Linux-Suchbefehle und Suchbefehle

Detaillierte Erläuterung der Linux-Suchbefehle und Suchbefehle

高洛峰
Freigeben: 2016-12-14 17:13:24
Original
1538 Leute haben es durchsucht

1. Der Befehl „locate“ für die Dateisuche

locate:
Nicht in Echtzeit, die Suche basiert auf der gesamten Systemdateidatenbank, Fuzzy-Suche,
Update generiert die Datei manuell Datenbank
Schnelle Geschwindigkeit

Abhängig von der aktualisierten Datenbank

#手动更新locate数据库
[root@lovelace scripts]# updatedb
#使用locate查找文件 (速度好快的说)
[root@lovelace scripts]# locate *.py
/home/scripts/factorial.py
/home/scripts/input.py
/usr/lib/python2.4/fileinput.py
/usr/lib/python2.4/fileinput.pyc
/usr/lib/python2.4/fileinput.pyo
/usr/lib/python2.4/site-packages/dogtail/rawinput.py
/usr/lib/python2.4/site-packages/dogtail/rawinput.pyc
/usr/lib/python2.4/site-packages/dogtail/rawinput.pyo
/usr/lib/python2.4/test/pyclbr_input.py
/usr/lib/python2.4/test/pyclbr_input.pyc
/usr/lib/python2.4/test/pyclbr_input.pyo
/usr/lib/python2.4/test/test_fileinput.py
/usr/lib/python2.4/test/test_fileinput.pyc
/usr/lib/python2.4/test/test_fileinput.pyo
Nach dem Login kopieren

2. Suchbefehl für die Dateisuche

Suche:
Echtzeit
Genau
Unterstützt viele Suchregeln
Durchsuchen Sie alle Dateien im angegebenen Verzeichnis, um die Suche abzuschließen, die Geschwindigkeit ist langsam

Suchpfad suchen Suchkriterien Verarbeitungsvorgänge nach der Suche
Suchpfad: Die Standardeinstellung ist das aktuelle Verzeichnis
Suchkriterien: Standardmäßig werden alle Dateien unter dem angegebenen Pfad
gefunden und später verarbeitet: Standardmäßig werden

Übereinstimmungskriterien angezeigt:
-Name 'Dateiname': Genaue Übereinstimmung für Dateinamen
Platzhalter für Dateinamen:
* Beliebiges Zeichen beliebiger Länge
? Beliebiges einzelnes Zeichen
[] Zeichen in der Option
-iname 'Dateiname': Bei der Dateinamenübereinstimmung wird die Groß-/Kleinschreibung nicht beachtet.
-Regex-Muster. Dateinamenübereinstimmung basierend auf regulären Ausdrücken.

-Benutzerbenutzername : Suche nach Eigentümer
-group Gruppenname: Suche nach Gruppe

-gid gid: Suche nach GID
-uid uid:: Suche nach udi

- nouser Dateien ohne Besitzer finden
-nogroup Dateien ohne Gruppen

Beispiel: find /tmp -nouser

[root@lovelace scripts]# find /tmp -name test
/tmp/sources/httpd-2.2.17/srclib/apr-util/test
/tmp/sources/httpd-2.2.17/srclib/apr/test
/tmp/sources/httpd-2.2.17/modules/test
/tmp/sources/httpd-2.2.17/test
/tmp/test
Nach dem Login kopieren

Dateien basierend auf Dateityp suchen

-type
f: normale Datei
d: Verzeichnis
c: Zeichen
b: Blockgerät
l: Link
p: Pipe
s: Socket

Beispiel: find /etc -type d

#查找/tmp目录下名字为test 而且文件格式为目录的
[root@lovelace scripts]# find /tmp -type d -a -name test
/tmp/sources/httpd-2.2.17/srclib/apr-util/test
/tmp/sources/httpd-2.2.17/srclib/apr/test
/tmp/sources/httpd-2.2.17/modules/test
/tmp/sources/httpd-2.2.17/test
/tmp/test
Nach dem Login kopieren

Suche basierend auf der Dateigröße

-size
[+|-]#k Nein + und - Es bedeutet ein Genaue Übereinstimmung
[+|-]#m
[+|-]#G

Beispiel:finde /tmp -size +10M Finde das /etc-Verzeichnis mit mehr als 10M Datei

Kombinationsbedingungen: Dies erfordert das Verständnis von Morgans Gesetz
-a: und Standard
-o: oder
-not: nicht-
Beispiel:find /tmp -not -user user1 - o -not -type d

#查找/tmp目录下文件格式为目录,而且大小在26k到32k之间的目录
[root@lovelace scripts]# find /tmp -type d -a -size +16k -a -size -32k
/tmp/sources/httpd-2.2.17/docs/manual/mod
/tmp/sources/php-5.2.13/ext/reflection/tests
/tmp/sources/php-5.2.13/ext/date/tests
/tmp/sources/php-5.2.13/ext/spl/tests
/tmp/sources/php-5.2.13/tests/classes
/tmp/sources/php-5.2.13/Zend/tests
Nach dem Login kopieren

Suche basierend auf dem Dateizeitstempel:
In Tagen:

Änderungszeit: -mtime
Änderungszeit: -ctime
Anzeigen Zeit: -atime
[+|-]# Der Standardzeitstempel ist 5 Tage
-5: innerhalb von 5 Tagen besucht
+5: seit mindestens 5 Tagen nicht besucht
5: Besucht

vor genau 5 Tagen:
-mmin:
-cmin:
-amin:

find /tmp -amin –5 Dateien, auf die innerhalb von 5 zugegriffen wurde Minuten

Wenn mindestens längere Zeit nicht auf sie zugegriffen wurde und die Dateigröße eine bestimmte Menge überschreitet, führen Sie einen Löschvorgang durch
find /tmp -atime +30 -a – size +100M -exec 'rm -rf *' ;

#查找home目录下至少5天没被访问过的文件
[root@lovelace scripts]# find /home/ -ctime -5
/home/scripts
/home/scripts/list
/home/scripts/for
/home/scripts/for/dir.sh
/home/scripts/for/three.sh
/home/scripts/for/checkbash.sh
/home/scripts/for/sorsum.sh
/home/scripts/while
/home/scripts/while/readpasswd.sh
/home/scripts/while/catwhile.sh
/home/scripts/case
/home/scripts/case/showmenu.sh
/home/scripts/case/showmenu
/home/scripts/case/2showmenu.sh
/home/scripts/if
/home/scripts/if/grade.sh
/home/scripts/51cto
/home/scripts/51cto/info.tt
/home/scripts/51cto/info.sh
/home/scripts/51cto/1.sh
/home/scripts/51cto/argument.sh
/home/scripts/51cto/sum.sh
Nach dem Login kopieren

Suche basierend auf Berechtigungen:
-perm-Modus: genaue Übereinstimmung
-perm -modus: Jede Berechtigung muss genau mit Dateiberechtigungen übereinstimmen, die diesen Modus vollständig umfassen entsprechen alle dem Standard
-perm /mode: Jede der 9 Berechtigungen, die die Bedingungen erfüllt

Beispiel: find /tmp -perm –001 Andere Dateien suchen, die der Benutzer hat Schreibberechtigung für


Suchaktion:
-print Standard
-ls: Zeigt alle Informationen der Datei in einem Format an, das dem Befehl ls -l

-ok ähnelt {} ; Der Abfragevorgang wird jedes Mal ausgeführt und erfordert eine Bestätigung durch den Benutzer
-exec command {} ; Der Abfragevorgang wird nicht aktiviert
Um den ursprünglichen Namen anzugeben, verwenden Sie {}

Beispiel: find /tmp -perm -020 -exec mv {} {}.new ;

#找出home中大小为16k到32k之间的文件,然后传递给exec 并显示出来
[root@lovelace scripts]# find /home/ -size +16k -a -size -32k -exec ls -lh {} \;
-rw-r--r-- 1 root root 20K 05-03 03:04 /home/nick/etc/gconf/gconf.xml.defaults/%gconf-tree-li.xml
-rw-r--r-- 1 root root 20K 05-03 03:04 /home/nick/etc/gconf/gconf.xml.defaults/%gconf-tree-ug.xml
-rw-r--r-- 1 root root 25K 05-03 03:04 /home/nick/etc/gconf/schemas/drivemount.schemas
-rw-r--r-- 1 root root 20K 05-03 03:04 /home/nick/etc/gconf/schemas/gnome-volume-control.schemas
-rw-r--r-- 1 root root 21K 05-03 03:04 /home/nick/etc/gconf/schemas/system_smb.schemas
-rw-r--r-- 1 root root 22K 05-03 03:04 /home/nick/etc/gconf/schemas/desktop_gnome_thumbnailers.schemas
-rw-r--r-- 1 root root 17K 05-03 03:04 /home/nick/etc/gconf/schemas/apps_gnome_settings_daemon_default_editor.schemas
Nach dem Login kopieren

find- und xargs-Befehle

xargs: Die Funktion besteht darin, den Parameter zu konvertieren Liste in kleine Stücke aufteilen Wird in Stücken an andere Befehle übergeben, um Probleme mit langen Parameterlisten zu vermeiden.

Im Vergleich zum Befehl -exec verfügt dieser Befehl über leistungsfähigere Funktionen. Bei Verwendung mit find wird es normalerweise über eine Pipeline

find /tmp –size +100M | an xargs übergeben, die den vollständigen Pfad eines Befehls findet und möglicherweise den Alias ​​des Befehls anzeigt

whereis: ähnelt which und gibt zusätzlich den vollständigen Pfad der Manpage an, die den Befehl enthält.

#使用which命令查找ls命令的完整路径
[root@lovelace scripts]# which ls
alias ls='ls --color=tty'
/bin/ls
#使用ldd命令查看ls所依赖的库文件(这里需要用到ls的完整路径)
[root@lovelace scripts]# ldd /bin/ls
linux-gate.so.1 =>  (0x00cf8000)
librt.so.1 => /lib/librt.so.1 (0x00d8d000)
libacl.so.1 => /lib/libacl.so.1 (0x00d62000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00de0000)
libc.so.6 => /lib/libc.so.6 (0x00110000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00d71000)
/lib/ld-linux.so.2 (0x00baf000)
libattr.so.1 => /lib/libattr.so.1 (0x003a9000)
libdl.so.2 => /lib/libdl.so.2 (0x00d55000)
libsepol.so.1 => /lib/libsepol.so.1 (0x00d98000)
Nach dem Login kopieren
whatis: fragt die Datei in der whatis-Datenbank ab, wann immer Sie möchten um Systembefehle und wichtige Konfigurationsdateien zu bestätigen

, dieser Befehl ist sehr wichtig und kann als einfacher Man-Befehl verwendet werden.
#使用whereis查看命令的完整路径和相应的man文件
[root@lovelace scripts]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
#man 查看对应的文件
[root@lovelace scripts]# man 1 ls
#man 查看对应的文件
[root@lovelace scripts]#
[root@lovelace scripts]# man 1p ls
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage