查命令绝对路径:

which用于查找并显示给定命令的绝对路径,环境变量中PATH参数也能够被查出来。

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

寻找特定文件:

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相干文件的门路,该命令只能用于程序名的搜寻

[root@localhost ~]# whereis --help语法格局:[ whereis [选项] 文件名 ]        -b              #只找二进制文件        -m              #只找man文档        -s              #只找源代码

应用 whereis -b 命令找二进制文件,与帮忙手册。

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

缓存查找文件:

locate 搜寻一个数据库/var/lib/mlocatedb,这个数据库中含有本地所有文件信息,Linux零碎主动创立这个数据库,并且每天自动更新一次,所以应用locate命令查不到最新变动过的文件,为了防止这种状况,能够在应用locate之前,先应用updatedb命令,手动更新数据库,updatedb命令会依据/etc/updatedb.conf来更新文件.

[root@localhost ~]# yum install -y mlocate[root@localhost ~]# locate --help语法格局:[ locate [选项] 文件名 ]        -d 目录        #指定数据库所在的目录        -i             #疏忽大小写差别        -r             #前面接正则表达式

应用 locate 命令查问一个文件.

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

遍历文件查找:

find 命令能够说是最重要的查找命令了,该命令参数较多。

[root@localhost ~]# find --help语法格局:[ find [目录] [属性] 文件名 ]        -name         #按文件名查找        -size         #依据大小查找        -user         #依据属主查找        -perm         #依据权限查找        -type         #依据类型查找        -time         #按工夫查找        -inum         #依据i节点查问        -exec         #查找后执行命令

-name 按文件名查找:

罕用查问通配符

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

查找/var/目录下,以.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....省略....

查找/root/目录下,以[1-3之间],结尾是.txt的文件

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

查找/etc/目录下,结尾是6个任意字符的文件

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

-size 依据大小查找

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

查找/etc/目录下,小于10k的文件

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

查找/etc/目录下,大于1M的文件

[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....省略....#留神:+-号如果没有,是准确到这么大,通常都会带上+或-号示意一个范畴.

-user 依据属主与权限查找

在/root目录中查找属于wang用户的文件

[root@localhost ~]# find /root/ -user wang/root/1.txt/root/2.txt/root/3.txt#留神:零碎中要存在该用户,否则会报谬误.

查找/boot/目录中权限是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....省略....

-type 依据类型查找

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

查找/usr/bin/目录下,类型是二进制文件.

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

-time 按工夫查找

按天数   ctime  atime  mtime按分钟   cmin   amin     mmin  c  change   #示意属性被批改过:所有者、所属组、权限  a  access   #被拜访过(被查看过)  m  modify   #示意内容被批改过

查找/etc/目录下,在120分钟以内,内容被批改过的文件

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

查找/etc/目录下,在7天之前,属性被批改过的文件

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

-inum 依据i节点查问

有一些文件的硬链接数量很多,有雷同的i节点,查找其中一个文件的i节点号,一次性删除。

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

-and or 逻辑连接符

-a    (and 逻辑与)     -o    (or  逻辑或)在/etc/目录下,查找大于1k,并且小于10k的文件[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 命令执行连接符

[查问格局] find  ...  -exec 命令 {}  \;{}        #示意find查问的后果集\         #是本义符,不应用命令别名,间接应用命令自身;         #分号是示意语句的完结.#留神:固定格局,只能这样写.留神两头的空格.(公众号:网络工程师阿龙)-----------------------------------------------------------------阐明: 本义符的作用是什么?在linux中有一个别名机制,如rm删除文件,执行的却是rm -i(用which rm 能够查看命令别名),应用rm删除文件前会提醒,就是因为rm -i这个参数。如果想应用命令原意,能够在加\本义,如:\rm test.txt   则不会提醒,间接删除

查找/var/log/目录下名字以.log结尾的文件,找到后执行 ls -l 显示详细信息.

[root@localhost ~]# find /var/log/ *.log -exec ls -l {} \;total 1176drwxr-xr-x. 2 root   root      204 Sep 18 09:12 anacondadrwx------. 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 btmpdrwxr-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....

查找/etc/目录下名字以"init*"结尾的文件,找到后,只列出文件,过滤掉目录,并执行 ls -l 显示详细信息.

[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

查找/tmp/下,的yum.log文件,找到后间接删除.

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

查找根下,找对于lyshark用户的所有文件,找到后间接删除.

[root@localhost ~]# find / -user lyshark -exec rm -r {} \;find: ‘/proc/1465/task/1465/fd/6’: No such file or directoryfind: ‘/proc/1465/task/1465/fdinfo/6’: No such file or directoryfind: ‘/proc/1465/fd/5’: No such file or directoryfind: ‘/proc/1465/fdinfo/5’: No such file or directoryfind: ‘/root/Catalog’: No such file or directoryfind: ‘/home/lyshark’: No such file or directory#rm -r 连带目录一起删除.报错起因:-exec 不适宜大量传输,速率慢导致.

在根下,查找lyshark用户的文件,找到后删除,删除前会提醒是否删除.

[root@localhost ~]# find / -user lyshark -ok rm -r {} \;find: ‘/proc/1777/task/1777/fd/6’: No such file or directoryfind: ‘/proc/1777/task/1777/fdinfo/6’: No such file or directory< rm ... /root/LyShark > ? y# -ok的应用和-exec是一样的,区别是-ok,执行时会提醒你是否进行下一步操作.

起源:http://u6.gg/kq67b