linux-文件查找和压缩、软件包管理、sed文本处理

一、文件查找和压缩

 1.1、locate

locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库索引构建过程需要遍历整个根文件系统,很消耗资源。
工作特点
查找速度快
模糊查找
非实时查找
搜索的是文件的全路径,不仅仅是文件名
可能只搜索用户具备读取和执行权限的目录
常用选项
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
-r 使用基本正则表达式
示例:
搜索以.conf结尾的文件,只列出10个不区分大小写
 1 [09:47:15 root@Centos8 ~]#locate -n 10 -ir '\.conf$'
 2 /boot/loader/entries/cd01c25ace5d48be9eb5d78af5f80194-0-rescue.conf
 3 /boot/loader/entries/cd01c25ace5d48be9eb5d78af5f80194-4.18.0-147.el8.x86_64.conf
 4 /etc/dracut.conf
 5 /etc/fuse.conf
 6 /etc/host.conf
 7 /etc/idmapd.conf
 8 /etc/kdump.conf
 9 /etc/krb5.conf
10 /etc/ld.so.conf
11 /etc/libaudit.conf

 1.2、find

fifind 是实时查找工具,通过遍历指定路径完成文件查找
工作特点:
查找速度略慢
精确查找
实时查找
查找条件丰富
可能只搜索用户具备读取和执行权限的目录
 
格式
find [OPTION]... [查找路径] [查找条件] [处理动作]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕

1.2.1、指定搜索目录层级

-maxdepth level 最大搜索目录深度,指定目录下的文件为第1级
-mindepth level 最小搜索目录深度
find /etc  -maxdepth 2 -mindepth 2

 示例:

 1 [10:06:26 root@Centos8 ~]#find /etc/ -maxdepth 2
 2 /etc/
 3 /etc/mtab
 4 /etc/fstab
 5 /etc/crypttab
 6 /etc/dnf
 7 /etc/dnf/modules.d
 8 /etc/dnf/vars
 9 /etc/dnf/aliases.d
10 /etc/dnf/dnf.conf
11 /etc/dnf/modules.defaults.d
12 /etc/dnf/plugins
13 /etc/dnf/protected.d
14 /etc/pki
15 /etc/pki/rpm-gpg
16 /etc/pki/ca-trust
17 /etc/pki/java
18 /etc/pki/tls
19 /etc/pki/rsyslog
20 /etc/rpm
21 /etc/rpm/macros.dist
22 /etc/magic
23 /etc/yum
24 /etc/yum/pluginconf.d
25 /etc/yum/protected.d
26 /etc/yum/vars
27 /etc/centos-release
28 /etc/nftables

 

 1.2.2、根据文件名和inode查找

-name "文件名称":支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-iname "文件名称":不区分字母大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n   链接数为n的文件
-regex “PATTERN”:以PATTERN匹配整个文件路径,而非文件名称

 示例:

按照文件名精确搜索根目录下passwd文件

1 [10:25:14 root@Centos8 ~]#find / -name passwd
2 /data/passwd
3 /etc/pam.d/passwd
4 /etc/passwd
5 /var/lib/sss/mc/passwd
6 /usr/bin/passwd
7 /usr/share/licenses/passwd
8 /usr/share/doc/passwd

 

模糊搜索根目录下包含passwd的文件

  1 [10:34:22 root@Centos8 ~]#find / -name "*passwd*"
  2 /data/passwd.bak
  3 /data/passwd
  4 /etc/security/opasswd
  5 /etc/pam.d/passwd
  6 /etc/passwd-
  7 /etc/passwd
  8 /var/lib/sss/mc/passwd
  9 /var/www/html/centos/8/BaseOS/Packages/passwd-0.80-2.el8.x86_64.rpm
 10 /usr/bin/grub2-mkpasswd-pbkdf2
 11 /usr/bin/gpasswd
 12 /usr/bin/passwd
 13 /usr/bin/htpasswd
 14 /usr/sbin/chgpasswd
 15 /usr/sbin/chpasswd
 16 /usr/sbin/saslpasswd2
 17 /usr/sbin/lpasswd
 18 /usr/lib/firewalld/services/kpasswd.xml
 19 /usr/lib64/security/pam_unix_passwd.so
 20 /usr/share/licenses/passwd
 21 /usr/share/doc/passwd
 22 /usr/share/doc/perl-Net-SSLeay/examples/passwd-cb.pl
 23 /usr/share/locale/ar/LC_MESSAGES/passwd.mo
 24 /usr/share/locale/as/LC_MESSAGES/passwd.mo
 25 /usr/share/locale/ast/LC_MESSAGES/passwd.mo
 26 /usr/share/locale/bg/LC_MESSAGES/passwd.mo
 27 /usr/share/locale/bn/LC_MESSAGES/passwd.mo
 28 /usr/share/locale/bn_IN/LC_MESSAGES/passwd.mo
 29 /usr/share/locale/bs/LC_MESSAGES/passwd.mo
 30 /usr/share/locale/ca/LC_MESSAGES/passwd.mo
 31 /usr/share/locale/cs/LC_MESSAGES/passwd.mo
 32 /usr/share/locale/cy/LC_MESSAGES/passwd.mo
 33 /usr/share/locale/da/LC_MESSAGES/passwd.mo
 34 /usr/share/locale/de/LC_MESSAGES/passwd.mo
 35 /usr/share/locale/el/LC_MESSAGES/passwd.mo
 36 /usr/share/locale/en_GB/LC_MESSAGES/passwd.mo
 37 /usr/share/locale/es/LC_MESSAGES/passwd.mo
 38 /usr/share/locale/et/LC_MESSAGES/passwd.mo
......

 

 按照文件节点编号搜索文件

1 [10:35:56 root@Centos8 ~]#find / -inum 128 -ls
2       128      4 dr-xr-xr-x  21  root     root         4096 Apr 11 00:09 /
3       128     12 -rw-r--r--   1  root     root         9892 Apr  2 23:52 /boot/grub2/i386-pc/jpeg.mod
4       128      0 drwxr-xr-x   4  root     root           85 Apr 11 21:49 /data
5       128      0 -rw-r--r--   1  root     root            0 Apr 12 09:44 /sys/kernel/debug/tracing/events/xen/xen_cpu_write_ldt_entry/filter
6       128      0 -r--r--r--   1  root     root         4096 Apr 12 10:37 /sys/devices/system/memory/memory3/valid_zones

 

 用正则表达式搜索文件名为任意字符串,以.conf结尾的文件

[10:37:48 root@Centos8 ~]#find / -regex '.*\.conf$'
/boot/loader/entries/cd01c25ace5d48be9eb5d78af5f80194-0-rescue.conf
/boot/loader/entries/cd01c25ace5d48be9eb5d78af5f80194-4.18.0-147.el8.x86_64.conf
/run/NetworkManager/resolv.conf
/run/NetworkManager/no-stub-resolv.conf
/run/tmpfiles.d/kmod.conf
......

1.2.3、按属主、属组查找

-user USERNAME:查找属主为指定用户(UID)的文件
-group GRPNAME: 查找属组为指定组(GID)的文件
-uid UserID:查找属主为指定的UID号的文件
-gid GroupID:查找属组为指定的GID号的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
示例:
 1 [10:40:32 root@Centos8 ~]#find / -user gjz -ls
 2 find: ‘/proc/1737/task/1737/fd/8’: No such file or dire
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值