第五天:文件查找和打包压缩
一、locate 非实时查找
1、查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db
2、索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库
3、索引构建过程需要遍历整个根文件系统,很消耗资源
4、locate和updatedb命令来自于mlocate包
5、工作特点:
查找速度快、模糊查找、非实时查找、搜索的是文件的全路径,不仅仅是文件名、可能只搜索用户具备读取和执行权限的目录
6、格式: locate [OPTION].....[PATTERN]....
-i 不区分大小写的搜索 -n N 只列举前N个 匹配项目 -r 使用基本正则表达式
二、find 实时查找
1、工作特点:
查找速度慢、精确查找、实时查找、查找条件丰富、可能只搜索用户具备读取和执行权限的目录
2、格式
find [OPTION]... [查找路径] [查找条件] [处理动作]
3、指定搜索目录层级
-maxdepth level 最大搜索目录深度,指定目录下的文件 为第1级
-mindepth level 最小搜索目录深度
4、先处理目录内的内容,再处理目录外层
-depth
5、根据文件名和Inode查找
-name 支持使用glob,
-iname 不区分大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n 链接数为n的文件
-regex "PATTERN" 以pattern匹配整个文件路径,而非文件名称
6、根据属主、属组查找
-user USERNAME
-group GRPNAME
-uid UserID
-gid GroupID
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
7、根据文件类型查找 -type TYPE
TYPE可以是以下形式
f: 普通文件
d: 目录文件
l: 符号链接文件
s: 套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
8、空文件或目录
-empty
9、组合条件
与:-a 默认多个条件是与关系,所以可以省略-a
或:-o
非:-not !
10、根据文件大小 来查找
-size [+|-] #UNIT
11、根据权限查找
-perm [/|-]MODE
MODE #精确权限匹配
/MODE #任何一类(u,g,o)对象的权限中只要有一位匹配即可,或关系 ,+从CENTOS 7开始淘汰
-MODE #每一类对象都 必须同时拥有指定权限,与关系
12、正则表达式
-regextype type
13、处理动作
-print: 默认的处理动作,显示至屏幕
-ls 类似于对查找到的文件执行“ls -dils”命令格式输出
-fls 查找到的所有文件的长格式信息保存至指定文件中
-delete 删除查找到的文件
-ok COMMAND {} \ ; 对查找到的每个文件 执行COMMAND指定的命令,
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND 指定的命令
关于:{} https://askubuntu.com/questions/339015/what-does-mean-in-the-find-command
三、xargs
由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs可以读入stdin的数据,并且以空格符或回车符将stdin的数据分隔成为参数
xargs可以解决接收多个参数
echo user{1..10}| xargs -n1 useradd 作为参数传进来,可以同时传N个参数
yum -y install pthon3.11
pip3 install you-get
四、compress和uncompress 已经不用了
compress options [file...] uncompress file.z
-d 解压缩
-c 结果输出至标准输出,不删除原文件
-v 显示详情
五、gzip和gunzip
gzip [OPTION].... FILE....
-k keep,保留原文件,
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件 不改变
-# 指定压缩比,#取值为1-9,值越大压缩比越大
六、bzip2和bunzip2
bzip2 [OPTION].... FILE....
-k keep,保留原文件,
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件 不改变
-# 指定压缩比,#取值为1-9,值越大压缩比越大
七、xz和unxz
xz [OPTION].... FILE....
-k keep,保留原文件,
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件 不改变
-# 指定压缩比,#取值为1-9,值越大压缩比越大
八、zip 和unzip
zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,
九、tar
tar,可以对目录和多个文件 打包一个文件 ,并且可以压缩,保留文件属性不丢失,常用于备份功能
只截图了部分,见:tar --help
十、split:分割一个文件为多个文件
将多个文件合并成一个大文件:
cat mybackup-parts* > mabackup.tar.gz