Источник : http://u6.gg/kq67b, редактор стиля: сетевой инженер Аарон.
Проверьте абсолютный путь команды:
который используется для поиска и отображения абсолютного пути данной команды, а также можно найти параметр PATH в переменной среды.
[root@localhost ~]# which bash
/usr/bin/bash
[root@localhost ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
Найдите конкретный файл:
Команда whereis используется для поиска пути к двоичной программе, файлу исходного кода, справочной странице и другим связанным файлам инструкции.Эта команда может использоваться только для поиска имени программы.
[root@localhost ~]# whereis --help
语法格式:[ whereis [选项] 文件名 ]
-b #只找二进制文件
-m #只找man文档
-s #只找源代码Используйте команду whereis -b для поиска двоичных файлов и справочных руководств.
[root@localhost ~]# whereis -b ifconfig
ifconfig: /usr/sbin/ifconfig
[root@localhost ~]# whereis -m ifconfig
ifconfig: /usr/share/man/man8/ifconfig.8.gz
Файлы поиска кеша:
locate ищет базу данных /var/lib/mlocatedb, которая содержит всю информацию о локальных файлах. Система Linux автоматически создает эту базу данных и автоматически обновляет ее раз в день, поэтому последние измененные файлы не могут быть найдены с помощью команды locate. избегайте этого В этом случае вы можете использовать команду updatedb для ручного обновления базы данных перед использованием locate.Команда 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 Найти по имени файла:
Общие подстановочные знаки запросов
\* #匹配任意一个或多个字符
? #匹配任意一个字符
[] #指定范围,外侧加引号Найдите файлы с расширением .log в каталоге /var/.
[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 ~]# 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Найдите в каталоге /etc/ файлы, начинающиеся с 6 произвольных символов.
[root@localhost ~]# find /etc/ -name "??????"
/etc/grub.d
/etc/grub.d/README
/etc/shells
/etc/init.d
....省略....
-размер найти по размеру
单位是 block 数据块 一块是512字节
1M -> 1024k -> 2048 块 (1块是0.5k 也就是512字节)
100M -> 102400k -> 204800块Найдите файлы размером менее 10 КБ в каталоге /etc/
root@localhost ~]# find /etc/ -size -10k
/etc/crypttab
/etc/.pwd.lock
/etc/environment
....省略....Найдите файлы размером более 1M в каталоге /etc/
[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 Поиск по владельцу и разрешениям
Найти файлы, принадлежащие пользователю wang, в каталоге /root
[root@localhost ~]# find /root/ -user wang
/root/1.txt
/root/2.txt
/root/3.txt
#注意:系统中要存在该用户,否则会报错误.Найдите файлы с правами 644 в каталоге /boot/
[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
....省略....
-время найти по времени
按天数 ctime atime mtime
按分钟 cmin amin mmin
c change #表示属性被修改过:所有者、所属组、权限
a access #被访问过(被查看过)
m modify #表示内容被修改过Найти файлы, содержимое которых было изменено в течение 120 минут в каталоге /etc/
[root@localhost ~]# find /etc/ -mmin -120
/etc/
/etc/resolv.conf
/etc/group-
/etc/gshadow-
/etc/group
/etc/gshadow
....省略....Найдите файлы, атрибуты которых были изменены до 7 дней в каталоге /etc/
[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节点的数据
-и или логический соединитель
-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 则不会提示,直接删除Найдите файл, имя которого заканчивается на .log, в каталоге /var/log/ и выполните команду ls -l для отображения подробной информации.
[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
....Ищите файлы, имена которых начинаются с "init*" в каталоге /etc/. Найдя их, перечислите только файлы, отфильтруйте каталоги и выполните 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Найдите файл yum.log в каталоге /tmp/ и удалите его сразу после обнаружения.
[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 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 不适合大量传输,速率慢导致.Под рутом ищем файл пользователя lyshark, и после нахождения удаляем.Перед удалением будет предложено удалять ли его.
[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
< rm ... /root/LyShark > ? y
# -ok的使用和-exec是一样的,区别是-ok,执行时会提示你是否进行下一步操作.Liangxu обновила много высококачественных видеогалантереи на видео-аккаунте, добро пожаловать на внимание!