• 文件查找和压缩


    1.使用locate命令
    查询系统上预建的文件索引数据库
      /var/lib/mlocate/mlocate.db
    索引的构建过程需要遍历整个根文件系统,极消耗资源
    工作特点:
      查找速度快
      模糊查找
      非实时查找
      搜索的是文件的全路径,不仅仅是文件名
      可能只搜索用户具备读取和执行权限的目录
    locate KEYWORD
      -i:不区分大小写的搜索
      -r:使用正则表达式  
    2.使用find命令
    实时查找工具,通过遍历指定路径完成文件查找
    工作特点
      查找速度慢
      精确查找
      实时查找
      可能只搜索用户具备读取和执行权限的目录
    语法:
      find [OPTION]...[查找路径][查找条件][处理动作]
    查找路径:指定具体目标路径,默认为当前目录
    查找条件:指定的查找标准,可以为文件名、大小、类型、权限等标准进行;
      1.指定搜索层级
      -maxdepth level 最大搜索目录深度,指定目录(指定查找的路径)为第一级
      -mindepth level 最小搜索目录深度
      2.根据文件名和inode查找:
      -name "文件名称":支持使用glob
      -samefile name :相同inode号的文件(硬链接)
      -regex "PATTERN"以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称
      3.根据属主、属组查找
      -user USERNAME:查找属主为指定用户(UID)的文件
      -group GROUPNAME:查找属组为指定组(GID)的文件
      -uid UserID:查找属主为指定的UID号的文件
      -gid GroupID:查找属组为指定的GID号的文件
      -nouser:查找没有属主的文件
      -nogroup:查找没有属组的文件
      4.组合条件
      与:-a
      或:-o 
      非:-not,!
      德摩根定律:
      (非A)或(非B)=非(A且B)
      (非A)且(非B)=非(A或B)
      示例:
      !A-a!B=!(A-oB)
      !A-o!B=!(A-aB)
      括号的转义字符 ( xxx )   xxx与括号之间有空格
      5.根据条件大小来查找:
      -size[+|-]#UNIT
        查用单位:k,M,G,c(byte)
      #UNIT:(#-1,#)
        如:6k表示(5k,6k]
      -#UNIT:[0,#-1]
        如:-6k表示[0,5k]
    +#UNIT:(#,oo)
        如:+6k表示(6k,oo)
      6.根据文件类型查找:
      -type TYPE
        f:普通文件
        d:目录文件
        l:符号链接文件
        s:套接字文件
        b:块设备文件
        c:字符设备文件
        p:管道文件
      空文件或目录
      -empty
      find /app -type d -empty (空目录)
    Linux下的三个时间:
    1. Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
    2. Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
    3. Change Time:简写为ctime,表示文件的状态时间,当文件的状态被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
      7.根据时间戳查找
      以天为单位
      -atime [+|-]#
        -#:[0,#)
        #:[#,#+1)
        +#:[#+1,oo]
      -mtime
      -ctime
      以分钟为单位
        -amin
        -mmin
        -cmin  
      8.根据权限查找
      -perm [/|-]mode           (换算成三位二进制来看,0忽略,只关心1是否匹配)
        mode:精确权限匹配
        /mode:任何一类(u,g,o)对象的权限中只能一位匹配即可,或关系
        -mode:每一类对象都必须同时拥有指定权限,与关系(非精确匹配,包含即可,find -perm -666   文件权限为667的也能匹配到,因为7中包含了6)
     
    处理动作:对符合条件的文件做操作,默认输出至屏幕
      -print:默认的处理动作,显示至屏幕
      -ls:类似于对查到的文件执行ls -l命令
      -delete:删除查找到的文件
      -ok COMMAND {} ; 对查找到的文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
      -exec COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令
      {}:用于引用查找到的文件名称本身
      find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令
    参数替换xargs
      由于很多命令不支持管道来传递参数,而日常工作中有这个必要,所以就有了xargs命令
      xargs用于产生某个命令的参数,xargs可以读入stdin的数据,并且以空格符或回车符将stdin的数据分隔成arguments
      注意:文件名或者时其他意义的名词内含有空格符的情况
      有些命令不能接受过多参数,命令执行可能会失败,xargs可以解决
      示例:
        ls f*|xargs rm
        find /sbin -perm +700|ls -l 这个命令是错误的
        find /sbin -perm +700|xargs ls -l
    3.压缩和解压缩工具
      常用功能:压缩源文件并保留源文件;解压缩文件;指定压缩比进行压缩;压缩工具要注意文件后缀
     
      1.gzip/gunzip
      gzip [OPTION]...file...
        -d:解压缩,相当于gunzip
        -c:将压缩或解压缩的结果输出至标准输出
        -#:1-9,指定压缩比,值越大压缩比越大
        gzip -c messages >messages.gz
      2.bzip2/bunzip2
       bzip2 [OPTION]...file...
        -k:keep,保留原文件
        -d:解压缩
        -#:1-9指定压缩比,默认为9
       3.xz/unxz
        xz [OPTION]...file...
          -k:保留原文件
          -d:解压缩
          -#:1-9,压缩比,默认为6
       4.zip/unzip
        压缩文件
          zip Packages.zip Packages
        打包压缩
          zip -r /hjm/sysconfig /etc/sysconfig
        解包解压缩
          unzip sysconfig.zip
        5.不显示解压缩的前提下查看文件内容
         zcat——gz
         bzcat——bz2
         xzcat——xz
    4.打包工具 
      tar [OPTION]...
      (1)创建归档
        tar -cpvf /PATH/TO/SOMEFILE.tar file...
      (2)追加文件至归档 注:不支持对压缩文件追加
        tar -rf  /PATH/TP/SOMEFILE.tar file...
      (3)查看归档文件中的文件列表
        tar -tf /PATH/TO/SOMEFILE.tar
      (4)展开归档
        tar -xf /PATH/TO/SOMEFILE.tar -C /PATH/
      (5)结合压缩工具实现:归档并压缩
        -j:bzip2,-z:gzip,-J:xz
     
  • 相关阅读:
    Windows Server 2012上PHP运行环境搭建的简易教程(Win08适用)
    Windows 8.1 系统ISO镜像下载或自Win8应用商店升级方法
    dojo布局(layout)
    dojo创建tree
    Postgres SQL学习笔记
    PostGIS ShapeFile 导入数据
    利用 PortableBasemapServer 发布地图服务
    Fortran 笔记
    ArcMap 操作笔记
    gdal编译C#开发版本
  • 原文地址:https://www.cnblogs.com/hjmLinux/p/11804662.html
Copyright © 2020-2023  润新知