Heim  >  Artikel  >  System-Tutorial  >  Zusammenfassung des Befehls zum Suchen von Dateien unter einem Linux-System, das ist großartig!

Zusammenfassung des Befehls zum Suchen von Dateien unter einem Linux-System, das ist großartig!

WBOY
WBOYnach vorne
2024-02-12 18:09:09541Durchsuche

Der Weg, den absoluten Pfad eines Befehls zu finden, besteht darin, den Befehl „which“ zu verwenden. Der Befehl „which“ hat eine sehr praktische Funktion: Er kann den Pfad eines bestimmten Befehls im PATH-Parameter der Umgebungsvariablen finden. Mit dem Befehl „which“ können wir ganz einfach die vollständigen Pfadinformationen eines Befehls abrufen. Dies ist nützlich für Skripte und Programme, die bestimmte Befehle ausführen müssen. Mit welchem ​​Befehl können wir also leicht den absoluten Pfad eines bestimmten Befehls finden und anzeigen.

Linux 系统下 查找文件 命令总结,这个很哇塞!

[root@localhost ~]# which bash
/usr/bin/bash

[root@localhost ~]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls

Eine bestimmte Datei suchen:

Der Befehl whereis wird verwendet, um die Pfade von Binärprogrammen, Quellcodedateien, Manpages und anderen zugehörigen Dateien mit Anweisungen zu finden. Dieser Befehl kann nur zum Suchen nach Programmnamen verwendet werden

[root@localhost ~]# whereis --help

语法格式:[ whereis [选项] 文件名 ]

        -b              #只找二进制文件
        -m              #只找man文档
        -s              #只找源代码

Verwenden Sie den Befehl whereis -b, um Binärdateien und Hilfehandbücher zu finden.

[root@localhost ~]# whereis -b ifconfig
ifconfig: /usr/sbin/ifconfig

[root@localhost ~]# whereis -m ifconfig
ifconfig: /usr/share/man/man8/ifconfig.8.gz

Cache-Suchdateien:

locate durchsucht eine Datenbank /var/lib/mlocatedb. Das Linux-System erstellt diese Datenbank automatisch und aktualisiert sie automatisch einmal am Tag Um dies zu vermeiden, können Sie in diesem Fall den Befehl „updateb“ verwenden, um die Datenbank manuell zu aktualisieren, bevor Sie „locate“ verwenden. Der Befehl „updateb“ aktualisiert die Datei entsprechend /etc/updatedb.conf.

[root@localhost ~]# yum install -y mlocate
[root@localhost ~]# locate --help

语法格式:[ locate [选项] 文件名 ]

        -d 目录        #指定数据库所在的目录
        -i             #忽略大小写差异
        -r             #后面接正则表达式

Verwenden Sie den Befehl „locate“, um eine Datei abzufragen.

[root@localhost ~]# updatedb 
[root@localhost ~]# locate /etc/passwd
/etc/passwd
/etc/passwd-

Durchsuchen Sie Dateien, um Folgendes zu finden:

Der Suchbefehl kann als der wichtigste Suchbefehl bezeichnet werden. Dieser Befehl verfügt über viele Parameter.

[root@localhost ~]# find --help

语法格式:[ find [目录] [属性] 文件名 ]

        -name         #按文件名查找
        -size         #根据大小查找
        -user         #根据属主查找
        -perm         #根据权限查找
        -type         #根据类型查找
        -time         #按时间查找
        -inum         #根据i节点查询
        -exec         #查找后执行命令

-name Suche nach Dateiname:

Gemeinsame Abfrageplatzhalter

\*     #匹配任意一个或多个字符
?     #匹配任意一个字符
[]     #指定范围,外侧加引号

Suchen Sie im Verzeichnis /var/ nach Dateien mit der Endung .log.

[root@localhost ~]# find /var/ -name "*.log"
/var/log/tuned/tuned.log
/var/log/audit/audit.log
/var/log/anaconda/X.log
/var/log/anaconda/program.log
....省略....

Suchen Sie im Verzeichnis /root/ nach Dateien, die mit [1-3] beginnen und mit .txt enden

[root@localhost ~]# ls
1.txt  2.txt  3.txt  Catalog  File

[root@localhost ~]# find /root/ -name "[1-3].txt"
/root/1.txt
/root/2.txt
/root/3.txt

Suchen Sie im Verzeichnis /etc/ nach Dateien, die mit 6 beliebigen Zeichen beginnen

[root@localhost ~]# find /etc/ -name "??????"
/etc/grub.d
/etc/grub.d/README
/etc/shells
/etc/init.d
....省略....

-Größensuche basierend auf der Größe

单位是 block 数据块  一块是512字节
1M -> 1024k -> 2048 块  (1块是0.5k 也就是512字节)
100M -> 102400k -> 204800块

Suchen Sie nach Dateien mit weniger als 10 KB im Verzeichnis /etc/

root@localhost ~]# find /etc/ -size -10k
/etc/crypttab
/etc/.pwd.lock
/etc/environment
....省略....

Suchen Sie im Verzeichnis /etc/ nach Dateien, die größer als 1 MB sind

[root@localhost ~]# find /etc/ -size +1M   #查询大于1M的文件
/etc/udev/hwdb.bin
/etc/selinux/targeted/active/policy.kern
/etc/selinux/targeted/contexts/files/file_contexts.bin
/etc/selinux/targeted/policy/policy.31
....省略....

#注意:+-号如果没有,是精确到这么大,通常都会带上+或-号表示一个范围.

-Benutzersuche basierend auf Eigentümer und Berechtigung

Suchen Sie im /root-Verzeichnis nach Dateien, die dem Benutzer wang gehören.

[root@localhost ~]# find /root/ -user wang
/root/1.txt
/root/2.txt
/root/3.txt
#注意:系统中要存在该用户,否则会报错误.

Suchen Sie im Verzeichnis /boot/ nach Dateien mit der Berechtigung 644

[root@localhost ~]# find /boot/ -perm 0644
/boot/grub2/device.map
/boot/grub2/i386-pc/gcry_rmd160.mod
/boot/grub2/i386-pc/acpi.mod
/boot/grub2/i386-pc/gcry_rsa.mod
....省略....

-Typ-Suche basierend auf dem Typ

-type f 二进制文件(普通文件)
-type l 软链接文件
-type d 目录

Suchen Sie nach dem Verzeichnis /usr/bin/, der Typ ist Binärdatei.

[root@localhost ~]# find /usr/bin/ -type f
/usr/bin/cp
/usr/bin/gzip
/usr/bin/alias
/usr/bin/csplit
/usr/bin/bash
....省略....

-Zeitsuche nach Zeit

按天数   ctime  atime  mtime
按分钟   cmin   amin     mmin

  c  change   #表示属性被修改过:所有者、所属组、权限
  a  access   #被访问过(被查看过)
  m  modify   #表示内容被修改过

Suchen Sie im Verzeichnis /etc/ nach Dateien, deren Inhalt innerhalb von 120 Minuten geändert wurde

[root@localhost ~]# find /etc/ -mmin -120
/etc/
/etc/resolv.conf
/etc/group-
/etc/gshadow-
/etc/group
/etc/gshadow
....省略....

Suchen Sie im Verzeichnis /etc/ nach Dateien, deren Attribute vor 7 Tagen geändert wurden

[root@localhost ~]# find /etc/ -ctime +7
/etc/resolv.conf
/etc/group-
/etc/gshadow-
....省略....

-Inum-Abfrage basierend auf i-Knoten

Einige Dateien haben eine große Anzahl fester Links und denselben I-Node. Suchen Sie die I-Node-Nummer einer der Dateien und löschen Sie sie sofort.

[root@localhost ~]# find ./ -inum 1024 -exec rm{} \;   #删除相同I节点的数据

-und oder logischer Anschluss

-a    (and 逻辑与)     
-o    (or  逻辑或)

Suchen Sie im Verzeichnis /etc/ nach Dateien, die größer als 1 KB und kleiner als 10 KB sind

[root@localhost ~]# find /etc/ -size +1k -a -size -10k
/etc/
/etc/grub.d/00_header
/etc/grub.d/20_ppc_terminfo
/etc/grub.d/00_tuned
/etc/rc.d/init.d/README
/etc/rc.d/init.d/netconsole
/etc/rc.d/init.d/network
/etc/pam.d
....省略....

-exec-Befehlsausführungs-Connector

[查询格式] find  ...  -exec 命令 {}  \;

{}        #表示find查询的结果集
\         #是转义符,不使用命令别名,直接使用命令本身
;         #分号是表示语句的结束.

#注意:固定格式,只能这样写.注意中间的空格.
(公众号:网络工程师阿龙)-----------------------------------------------------------------
说明: 转义符的作用是什么?

在linux中有一个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令别名),
使用rm删除文件前会提示,就是因为rm -i这个参数。如果想使用命令原意,可以在加\转义,
如:\rm test.txt   则不会提示,直接删除

Suchen Sie nach Dateien im Verzeichnis /var/log/, deren Namen auf .log enden. Nachdem Sie sie gefunden haben, führen Sie ls -l aus, um detaillierte Informationen anzuzeigen.

[root@localhost ~]# find /var/log/ *.log -exec ls -l {} \;
total 1176
drwxr-xr-x. 2 root   root      204 Sep 18 09:12 anaconda
drwx------. 2 root   root       23 Sep 18 09:12 audit
-rw-------. 1 root   root    53001 Sep 19 00:57 boot.log
-rw-------. 1 root   utmp      384 Sep 18 09:22 btmp
drwxr-xr-x. 2 chrony chrony      6 Apr 12 13:37 chrony
-rw-------. 1 root   root     3523 Sep 19 01:01 cron
-rw-r--r--  1 root   root   119414 Sep 19 00:57 dmesg
-rw-r--r--  1 root   root   119599 Sep 18 23:35 dmesg.old
-rw-r--r--. 1 root   root     1320 Sep 19 00:23 firewalld
-rw-r--r--. 1 root   root      193 Sep 18 09:05 grubby_prune_debug
....

Suchen Sie im Verzeichnis /etc/ nach Dateien, deren Namen mit „init*“ beginnen. Sobald Sie sie gefunden haben, listen Sie nur die Dateien auf, filtern Sie die Verzeichnisse heraus und führen Sie ls -l aus, um detaillierte Informationen anzuzeigen.

[root@localhost ~]# find /etc/ -name "init*" -a -type f -exec ls -l {} \;

-rw-r--r--. 1 root root 511 Apr 11 01:09 /etc/inittab
-rw-r--r--. 1 root root 798 Apr 11 01:09 /etc/sysconfig/init
-rwxr-xr-x. 1 root root 5419 Jan  2  2018 /etc/sysconfig/network-scripts/init.ipv6-global
-rw-r--r--. 1 root root 30 Apr 11 14:12 /etc/selinux/targeted/contexts/initrc_context

Suchen Sie unter /tmp/ nach der Datei yum.log und löschen Sie sie direkt, nachdem Sie sie gefunden haben.

[root@localhost tmp]# find /tmp/ -name yum.log -exec rm {} \;
[root@localhost tmp]#

Suchen Sie im Stammverzeichnis nach allen Dateien, die sich auf den Lyshark-Benutzer beziehen, und löschen Sie sie direkt, nachdem Sie sie gefunden haben.

[root@localhost ~]# find / -user lyshark -exec rm -r {} \;

find: ‘/proc/1465/task/1465/fd/6’: No such file or directory
find: ‘/proc/1465/task/1465/fdinfo/6’: No such file or directory
find: ‘/proc/1465/fd/5’: No such file or directory
find: ‘/proc/1465/fdinfo/5’: No such file or directory
find: ‘/root/Catalog’: No such file or directory
find: ‘/home/lyshark’: No such file or directory
#rm -r 连带目录一起删除.报错原因:-exec 不适合大量传输,速率慢导致.

Suchen Sie im Stammverzeichnis nach den Dateien des Lyshark-Benutzers, löschen Sie sie, nachdem Sie sie gefunden haben, und Sie werden gefragt, ob Sie sie löschen möchten, bevor Sie sie löschen.

[root@localhost ~]# find / -user lyshark -ok rm -r {} \;
find: ‘/proc/1777/task/1777/fd/6’: No such file or directory
find: ‘/proc/1777/task/1777/fdinfo/6’: No such file or directory

 ? y
# -ok的使用和-exec是一样的,区别是-ok,执行时会提示你是否进行下一步操作.

Das obige ist der detaillierte Inhalt vonZusammenfassung des Befehls zum Suchen von Dateien unter einem Linux-System, das ist großartig!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lxlinux.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen