LINUX企业运维 April 18, 2020

二十、find命令查找企业级用法进阶

Words count 5.6k Reading time 5 mins. Read count 0

查找条件

根据时间戳

  以“天”为单位;

    -atime [+|-]#,

    #: [#,#+1]

    +#:[#+1,∞]

    -#:[0,#]

    -mtime

    -ctime

  以“分钟”为单位

    -amin

    -mmin

    -cmin

  根据权限查找

    -perm [/|-]MODE

      MODE:精确权限匹配

      /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,+

  从centos7开始淘汰

    -MODE: 每一类对象都必须同时拥有指定权限,与关系

    0表示不关注

    ·find-perm755会匹配权限模式恰好是755的文件

    ·只要当任意人有写权限时,find-perm+222就会匹配

    ·只有当每个人都有写权限时,find-perm-222才会匹配

    ·只有当其它人(other)有写权限时,find-perm-002才会匹配

处理动作

  -print:默认的处理动作,显示至屏幕

  -ls:类似于对查找到的文件执行”ls -l“命令

  -delete:删除查找到的文件

  -fls file:查找到的所有文件的长格式信息保存至指定文件中

  -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+7000|xalrgs ls -l

  find和xargs格式:find | xargs COMMAND

压缩、解压缩及归档工具

  file-roller

  compress/uncompress:.Z

  gzip/gunzip:.gz

  bzip2/bunzip2:.bz2

  xz/unxz:.xz

  zip/unzip

  tar

  cpio

  compress/uncompress

  compress [-dfvcVr] [-b maxbits] [file…]

    -d:解压缩,相当于uncompress

    -c结果输出至标准输出,不删除原文件

    -v: 显示详情

  uncompress解压缩

  zcat file.Z>file

  gzip/gunzip

    gzip[OPTION]...FILE…

      -d:解压缩,相当于gunzip

      -c将压缩或解压缩的结果输出至标准输出

      -#:1-9,指定压缩比,值越大压缩比越大

  zcat:不显式解压缩的前提下查看文本文件内容

  实例:

    gzip –c messages>messages.gz

    gzip –c –d messages.gz>messages

    zcat messages.gz>messages

  bzip2/bunzip2/bzcat

    bzip [OPTION]… FILE…

    -k: keep,保留原文件

    -d: 解压缩

    -#:1-9,压缩比,默认为9

  bzcat:不显示解压缩的前提下查看文本文件内容

  xz/unxz/xzcat

    xz[OPTION]…FILE…

  -k:keep,保留原文件

    -d: 解压缩

    -#:1-9,压缩比,默认为6

    bzcat:不显示解压缩的前提下查看文本文件内容

  zip/unzip

  打包压缩

    zip –r /testdir/sysconfig /etc/sysconfig

  解包解压缩

    unzip sysconfig.zip

    cat /var/log/messages | zip messages –

    unzip –p message > message

  tar工具

    tar (Tape Archive,磁带归档的缩写)

    tar[OPTION]…

  (1)创建归档

    tar –cpvf /PATH/TO/SOMEFILE.tar FILE…

  (2)追加文件至归档:注:不支持对压缩文件追加

    tar –r –f /PATH/TO/SOMEFILE.tar FILE…

  (3)查看归档文件中的文件列表

    tar –t –f /PATH/TO/SOMEFILE.tar

  (4)展开归档

    tar –x –f /PATH/TO/SOMEFILE.tar

    tar –x –f /PASTH/TO/SOMEFILE.tar –C /PATH/

  (4)结合压缩工具实现:归档并yasuo

    -j: bzip2, -z: gzip, -J: xz

0%