第五天:文件查找和打包压缩

发布时间 2024-01-11 19:58:32作者: djyhello

一、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