文件查找与解压缩

文件查找

脚本文件名的查询

which(寻找执行文件)
  • which [-a] command
    -a :将所有由PATH目录中可以找到的命令均列出,而不只是第一个被找到的命令名称

文件名的查找

文件查找:
实时查找:遍历所有文件进行条件匹配;(find)
非实时查找:根据索引查找;(whereis、locate)

whereis
  • whereis [-bmsu] [-BMS directory… -f] filename…
    -b :只找二进制格式的文件
    -m :只找在说明文件路径下的文件
    -s:只找source源文件
    -u :查找不在上述三个选项当中的其他特殊文件
locate
  • locate [-ir] keyword
    -i:忽略大小写的差异
    -r:后面可接正则表达式
    -n N 只列举前N个匹配的项目

    locate -r “.*.sh”
    locate -n 10 passwd
    locate -i baoding

  • updatedb:根据/etc/updatedb.conf的设置去查找系统硬盘内的文件,并更新/var/lib/mlocate内的数据库文件

    注:locate查找数据并非实时的,如果要查找一些比较新的内容,其实是会找不到;可以使用updatedb去更新mlocate.db
    /tmp/目录下不适用

find

find [option]… [查找路径] [查找条件] [处理动作]

查找路径:默认为当前路径
查找条件:默认为指定路径下的所有文件
处理动作:默认为显示至屏幕

  • 查找条件

    • -name “文件名称”:可使用通配符 : * 、?、 [] 、[^] 
      find . -name “????.log”
      -iname 文件名称忽略大小写
      find . -iname “baoding.log”
      -inum n 根据inode来查找 (基本不用)
      find . -inum 1179826
      -samefile name 查找相同inode号的文件,其实等于查找硬链接(基本不用)
      -links n 根据链接数
      find . -links 2
      -regex 使用正则表达式的方法匹配文件名
      find /etc/ -regex “.*\.sh$”
    • 根据文件的属主和属组查找:
      -user -group -uid -gid 
      -nouser 查找没有属主的文件或者目录
      -nogroup 查找没有属组的文件或者目录
      测试方法:新建一个ash用户,然后把一个文件的属主和属组改成ash
      然后再删除ash用户
    • -type TYPE:根据文件类型查找
      f 普通文件 
      d 目录
      l 链接文件
      s 套接字文件
      b 块设备
      c 字符设备
      p 管道
    • 根据文件大小来查找

      • -size [+|-] # UNIT 
        #UNIT: #-1 < x <= # ;(#-1,#]
        -#UNIT: x <= #-1 ; (-∞,#-1]
        +# UNIT : x > # ; (#,+∞)
    • 根据时间戳查找

      • 以 “天” 为单位
        -atime [+|-] # 
        #: # <= x < #+1 ;[#,#+1)
        -: x < # ; (-∞,#)
        +#: x >= #+1 ; [#+1,+∞) 
        -mtime
        -ctime

      -mtime +7 7天以前的 从第8天开始
      -mtime 7 当前时间往前推第7天
      -mtime -7 当前时间往前推第7天以内
      –10–9–8      7——5—3–2—1
      mtime +7 | mtime 7| mtime -7    |

      • 以分钟为单位 -amin -cmin(比较少用)
        -mmin +7 -7 7
    • 根据权限来查找

      • -perm [+|-] MODE
        MODE :与MODE精确匹配
        +MODE :任一类用户的权限只能包含对其指定的任何一位权限即可;为‘或’关系;CentOS 6为+、CentOS 7为/
        -MODE :每类用户指定的检查权限都匹配,为三类用户所有指定的检查权限都能能够被包含;为‘与’关系
        注:+020:中的0表示不匹配属主和其他位的权限,而不是说属主和其他位没有任何权限
    • 组合条件:
      与:-a
      或:-o
      非:-not, !
      -not A -a -not B = -not (A -o B) :不是A也不是B
      -not A -o -not B = -not (A -a B) :不是A或者不是B

      示例:查找/etc/下面所有的目录:

      查找目录是 /etc/
      要求排除 /etc/sane.d
      查找.conf 文件
      find /etc/ -path ‘/etc/sane.d’ -a -prune -o -name “
      .conf” -print 
      当查找到/etc/sane.d的时候 :前面的条件为真(’/etc/sane.d’ -a -prune) 
      或后面的条件就不会执行(-name “.conf”)
      当查找到其他目录的时候 :前面的条件为假 (’/etc/sane.d’ -a -prune)
      或后面的会执行 (-name “
      .conf”)
      a && b || c
      a 和b 都为真的时候 则 a && b 为真,然后后面c就不会执行 
      a 或者b 有一个为假,则 a && b 为假,然后后面的c就会执行

  • 处理动作

    • -print 打印到屏幕上
      -ls 打印到屏幕上 类似于ls -l
      -delete 删除操作 只删除文件,不能删除非空目录
      -fls file 查找到的文件信息保存到指定的文本中
      -ok COMMAND在执行后面的动作之前会提示你是否需要执行(交互式的)
      -exec COMMAND {} \; 执行后面的命令 {} 表示前面find出的结果 \; 固定用法

生产经常使用方式:
1、删除 find /logs/ -name “.log” -mtime +7 | xargs rm 监控告警 (磁盘告警)
find /logs/ -name “
.log” -size +20G | xargs rm 应用日志
2、备份   find /apps/data/ -name “” -exec cp {} /backup/ \;
3、查找  find /apps/ -name “
.log” | xargs grep -i “error” 日志里面找错误

文件解压缩

  • 压缩的作用:节省空间、节省带宽
  • 压缩工具:
    compress/uncompress,其对应的是.Z结尾的压缩格式文件;
    gzip/gunzip,其对应的是.gz结尾的压缩格式文件;
    bzip2/bunzip2,其对应的是.bz2结尾的压缩格式文件;
    xz/unxz,其对应的是.xz结尾的压缩格式文件;
    zip/unzip,其对应的是.zip结尾的压缩格式文件;

compress/uncompress

  • 安装: yum install ncompress 
    compress file :会生产file.Z压缩文件,同时会删除源文件
    compree -c file > file.Z :将压缩结果输出到标准屏幕上,可以一个(压缩)文件,从而达到生产压缩文件,同时保留源文件
    compress -d :解压缩 .Z格式结尾的压缩文件 === uncompress
    zcat file.Z 直接查看压缩文件的内容不用先解压缩

gzip/gunzip

gazip [OPTIONS] /PATH/TO/SOMEFILE…

  • -# 指明压缩比:1-9,默认是6;压缩比越高,耗费CPU资源也多;文件比较小的话,使用gzip越压缩越大
    -d 解压缩 == gunzip
    -c 将压缩或者解压缩结果输出到屏幕 
    -r 递归至目录中对每个文件进行压缩

nginx gzip on 
gzipminlength 1k;超过多大的文件(1K)才会压缩,否则,越压缩越大;

zcat file.gz 直接查看压缩文件的内容不用先解压缩

bzip2/bunzip2

bzip2 [OPTIONS] /PATH/TO/SOMEFILE…

  • -#:指明压缩比:1-9,默认是6;压缩比越高,耗费CPU资源也多
    -d :解压缩 == bunzip2
    -k :(keep)压缩后保留源文件

zcat file.bz2 直接查看压缩文件的内容不用先解压缩

xz/unxz

xz [OPTIONS] /PATH/TO/SOMEFILE…

  • -#:指明压缩比:1-9,默认是6;压缩比越高,耗费CPU资源也多
    -d :解压缩 == bunzip2
    -k :(keep)压缩后保留源文件

zcat file.bz2 直接查看压缩文件的内容不用先解压缩

zip/unzip

zip ZIP_FILE.zip /PATH/TO/SOMEFILE…  打包压缩(可以压缩目录)

  • -r 递归压缩
    -p 将压缩结果输出屏幕上
    unzip 解压缩:unzip ZIP_FILE.zip

归档工具

归档就是将多个文件打包为单个文件以便管理,默认的归档不会执行压缩
常用的工具:tar、cpio

tar

tar [OPTION…] [FILE]…

  • tar 打包工具,将多个目录打包成一个文件
    -c 打包 创建打包文件(归档);归档不会删除源文件
    -f 指定打包的文件名;(-f filename 必须放在一起)
    -r 将文件追加至归档文件中
    -t 不解压的情况下直接查看归档文件里面的内容 
    -x 执行解压缩;(通常与 -v(显示解压缩过程) -f结合使用)
    -C 解压到指定目录下
    其他:
    -p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
    -P 打包的时候保留绝对路径,即允许备份数据中含有根目录存在
    –exclude=File 在压缩过程中,排除File这个文件

  • 归档并压缩

    • -j: bzip2
      tar -j -c -f xiongan3.tar.bz2 xiongan
      tar -jcf xiongan3.tar.bz2 xiongan
      tar jcf xiongan3.tar.bz2 xiongan (通常使用)

    • -z: gzip压缩
      tar zcvf xiongxian.tar.gz xiongxian

    生产经常使用的gzip
    tar zcf xiongxian.tar.gz xiongxian 
    带目录:
    tar zcf xiongan.tar.gz xiongxian
    tar zcf xiongan.tar.gz xiongxian/* 
    不带目录: 
    cd xiongxian 
    tar zcf xiongan.tar.gz ./*

    tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist
    /root/includefilelist 里面包含的是要压缩的文件列表
    /root/excludefilelist 里面写的是不要压缩的文件列表

    • -J :xz 压缩
      tar Jcvf xiongan5.tar.xz xiongan

注:展开归档可以直接使用tar -xf,而无需为其指定对应的压缩工具选项;

cpio
  • -o 压缩
    -i 解压缩

find ./etc -print |cpio -ov >etc.cpio 
cpio –tv < etc.cpio
cpio –iv 
cpio –idv < etc.cpio

原创文章,作者:s,如若转载,请注明出处:http://www.178linux.com/72765

(0)
ss
上一篇 2017-04-08
下一篇 2017-04-08

相关推荐

  • LAMP (php-fpm模式)部署出现的奇葩问题

    1. 安装环境:(cent6.5) yum install -y php php-devel httpd  php-fpm mysql 2. 修改配置文件 vim /etc/httpd/conf/http.conf 注释掉DocumentRoot vim /etc/httpd/conf.d/vhost.conf <VirtualHost *:…

    2017-04-10
  • M20-1 8月5号作业

    作业:    1、取本机IP地址;    2、取各分区利用率的数值;    3、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示;    4、/etc/rc.d/init.d/functions或/etc/rc.d/init.d/fu…

    Linux干货 2016-08-15
  • 【福利招聘】 Base 上海 拍拍货(红杉领投,靠谱金融公司) 共5人

    公司简介 拍拍贷成立于2007年6月,全称为“上海拍拍贷金融信息服务有限公司”,总部位于国际金融中心上海,是中国首批网络信息借贷平台。 拍拍贷是一家由工商部门特批,获批“金融信息服务”的经营范围,得到政府认可的互联网金融平台。拍拍贷用先进的理念和创新的技术建立一个安全、高效、透明的互联网金融平台,规范个人贷款行为,让借入这改善生产生活,让借出者增加投资渠道。…

    Linux干货 2016-12-05
  • linux基础学习-第九天(shell基础)

    2016-08-10 授课内容: shell脚本基础: 变量 运算 bash测试(数字测试、字符测试、文件测试、组合测试) read命令 变量作用: 1、数据存储格式 2、参与的运算 3、表示的数据范围 变量类型: 1、本地变量 2、环境(全局)变量 3、特殊变量     驼峰命名变量:每个单词一个字母大写 本地变量:…

    Linux干货 2016-08-11
  • 最简单的Linux系统——更加深入了解Linux启动过程

    自制一个最简单的Linux: 1、有一个新的磁盘,并创建分区 2、挂载分区,创建目录 3、拷贝内核文件 4、创建MBR和grub.conf文件 5、创建/etc/fstab文件,设置开机自动挂载 6、拷贝一个bash程序 7、卸载分区,以新磁盘重启系统

    Linux干货 2016-09-11
  • linux的终端类型

    1、什么是终端 终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。 在早期计算机系统中,由于计算机主机昂贵,因此一个主机(IBM大型计算机)一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成。 在个人计算机时代,个人计算机可以运行称为终端仿真…

    Linux干货 2016-10-19

评论列表(1条)

  • renjin
    renjin 2017-04-12 11:53

    你上周的三篇文章主要介绍了vim,find命令的详细用法,包括grep与正则表达式方面的内容,基本把学过的内容都总结了出来了。写的很详细,第一篇与第二篇排版有些问题(需要注意文字段的缩进),文件查找与压缩解压缩这篇文章写的还是非常不错的,继续努力就好。