文件查找和压缩

文件查找

1、locate

  这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进行模糊匹配,在精确度上来说差了点,简单介绍下它的两个选项:

  • locate

-i  //查找文件的时候不区分大小写 比如:locate –i passwd

-n  //只显示查找结果的前N行 比如:locate -n 5 passwd

2、find

  • find在不指定查找目录的情况下是对整个系统进行遍历查找

  • 使用格式 :find [指定查找目录] [查找规则] [查找完后执行的action]

  • [指定查找目录]例如:
      [root@centos7 ~]#find /etc /tmp /root -name passwd
      /etc/passwd
      /etc/pam.d/passwd

  注意:目录之间要用空格分开

  • [查找规则]

(1)根据文件名查找

-name //根据文件名查找(精确查找)
-iname //根据文件名查找,但是不区分大小写

文件名通配的知识

*表示 通配任意的字符
?表示 通配任意的单个字符
[ ] 表示 通配括号里面的任意一个字符

(2)根据文件所属用户和组来查找文件

-user  //根据属主来查找文件
-group  //根据属组来查找文件

(3)根据uid 和 gid来查找用户

find /tmp -uid 500 //查找uid是500 的文件
find /tmp -gid 1000 // 查找gid是1000的文件

(4)-a and -o and –not的使用

-a 连接两个不同的条件(两个条件必须同时满足)
-o 连接两个不同的条件(两个条件满足其一即可)
-not 对条件取反的

(5)根据文件时间戳的相关属性来查找文件

我们可以使用stat命令来查看一个文件的时间信息 如下:
-atime
-mtime
-ctime
-amin
-mmin
-cmin

所以这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟

find /tmp –atime +5  //表示查找在五天内没有访问过的文件
find /tmp -atime -5  //表示查找在五天内访问过的文件

(6)根据文件类型来查找文件

-type
f  // 普通文件
d  //目录文件
l  //链接文件
b  //块设备文件
c  //字符设备文件
p  //管道文件
s  //socket文件

(7)根据大小来查找文件

-size find /tmp -size 2M  //查找在/tmp 目录下等于2M的文件
find /tmp -size +2M  //查找在/tmp 目录下大于2M的文件
find /tmp -size -2M  //查找在/tmp 目录下小于2M的文件

(8)根据文件权限查找文件

-perm
find /tmp -perm 755  //查找在/tmp目录下权限是755的文件
find /tmp -perm +222  //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
find /tmp -perm -222  //表示必须所有类别用户都满足有写权限

(9)-nouser and -nogroup

find / -nogroup –a –nouser  //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)

[查找完执行的action]

  • -print  //默认情况下的动作

  • -ls   //查找到后用ls 显示出来

  • -ok [commend]  //查找后执行命令的时候询问用户是否要执行

  • -exec [commend]   //查找后执行命令的时候不询问用户,直接执行

  • find /tmp -atime +30 –exec rm –rf {} ;
    删除查找到的超过30天没有访问过文件

压缩

Gzip

压缩
  gzip messages 权限不变
  gzip -#(1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件越小,默认压缩比为6.
  gzip -c messages > messages.gz 原文件保留,但权限根据umask来设置

解压

  gunzip message.gz 或 gzip -d messages.gz 权限不变
  gunzip -c messages.gz > messages 或 gzip -dc
  messages.gz > messages 或zcat messages.gz > message 压缩包保留,但权限根据umask来设置
  -v 压缩或解压时,显示详细过程

Bzip2

压缩
  bzip2 messages 权限不变,原文件消失
  bzip2 -k message 权限不变,原文件保留,可用在压缩和解压缩
  bzip -# (1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件为9.
  bzip2 -c messages > messages.bz2 原文件保留,但权限根据umask来设置

解压
  bunzip -k message.bz2 或 bzip2 -kd messages.bz2 权限不变,压缩包保留
  bunzip -c messages.bz2 > messages 或 bzip2 -dc
  messages.bz2 > messages 或bzcat messages.bz2 > message  压缩包保留,但权限根据umask来设置
  -v 压缩或解压时,显示详细过程

Xz

  • xz messages 权限不变,原文件消失
  • xz -k message 权限不变,原文件保留,可用在压缩和解压缩
  • xz -# (1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件越小。
  • xz -c messages > messages.xz原文件保留,但权限根据umask来设置
  • unxz -k message.xz 或 xz -kd messages.xz 解压权限不变,压缩包保留
  • unxz -c messages.xz > messages 或 xz -dc messages.xz > messages 或xzcat messages.xz > message 压缩包保留,但权限根据umask来设置
  • -v 压缩或解压时,显示详细过程

打包

Tar
tar

    • -c 创建包
    • -v 打包或解包显示过程
    • -f 指定文件
    • -t 查看包中的内容
    • -x 从包中解开文件,可解开指定文件或全部文件
        -xf user.tar passwd 仅解出passwd   -xf user.tar 解出全部文件
    • -C 与-x 配合,指定解压到的目的目录
    • -j 压缩与解压缩时使用bzip2   tar jcvf userfile.tar.bz2 group gshadow passwd shadow
    • -z 压缩与解压缩时使用gzip   tar jcvf userfile.tar.bz2 group gshadow passwd shadow   tar zcvf userfile.tar.gz group gshadow passwd shadow
    • -J 压缩与解压缩时使用xz   tar Jcvf userfile.tar.xz group gshadow passwd shadow   解压时不需要表明用什么压缩工具压缩,tar命令会自动识别 解压只需 tar -xvf 压缩包

linux基础—课堂随笔04_文件查找和压缩的更多相关文章

  1. linux基础—课堂随笔05_文本三剑客之SED

    1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  2. linux基础—课堂随笔010_系统启动和内核管理

    系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, functio ...

  3. linux基础—课堂随笔08_进程(转)

    进程优先级 命令 pstree -p 显示各个子线程 ps 进程状态(process state) UNIX风格:ps -ef BSD风格:ps aux 还有用到o参数,选项显示定制的信息: pid. ...

  4. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...

  5. linux基础—课堂随笔09_数组

    数组:(6.14 第一节) 取分区利用率,大于百分之八十则发出警报 取分区第一列 取分区使用率: 脚本: 检查脚本语法: ——end 数组切片: 1.跳过前两个取后面 2.跳过前两个取三个 生成10个 ...

  6. linux基础—课堂随笔07_磁盘存储和文件系统

    磁盘管理 管理分区 列出块设备  lsblk parted命令 高级分区操作 用法:  parted [选项]... [设备 [命令 [参数]...]...]  parted /dev/sdb mkl ...

  7. linux基础—课堂随笔06_软件包管理

    软件包管理 rpm 包和包管理器 包的组成:  二进制文件.库文件.配置文件.帮助文件 程序包管理器:  debian: deb文件,dpkg包管理器  redhat:rpm文件,rpm包管理器  r ...

  8. <实训|第十一天>学习一下linux中的进程,文件查找,文件压缩与IO重定向

    [root@localhost~]#序言 在今后的工作中,运维工程师每天的例行事务就是使用free -m,top,uptime,df -h...每天都要检查一下服务器,看看是否出现异常.那么今天我们就 ...

  9. 07.进程管理+作业控制+文件查找与压缩+文件压缩与打包+tar打包解包+NFS

    进程管理 程序放在磁盘上叫文件,把它复制到内存,并在cpu运行,就叫进程, 进程多少也反映当前运行程序的多少 进程在系统中会为每个进程生成一个进程号,在所有的进程中有一个特殊进程即init进程, 它是 ...

随机推荐

  1. 【神经网络与深度学习】转-caffe安装吐血总结

    这周安装了caffe的windows版本和Linux版本,依赖关系太多,如果系统选对了,安装起来很easy,选错了,就会遇见各种坑. 1.操作系统最好使用ubuntu desktop 14.04 64 ...

  2. freeRTOS学习8-20

  3. Linux文件属性之用户和组基础知识介绍

    一.Linux多用户多任务介绍 Linux/Unix 是一个多用户.多任务的操作系统:在讲Linux账号及账号组管理之前,我们先简单了解多用户.多任务操作系统的基本概念. 1.1Linux单用户多任务 ...

  4. intellij idea for mac 2018 破解版

    下载地址:https://pan.baidu.com/s/1DNo3CvkI7EMy6Mt0hdzTpg 1.在本站下载好mac文件包,打开dmg镜像文件,将“IntelliJ IDEA”拖入到“Ap ...

  5. IDEA安装Git

    1.下载Git 官方地址为:https://git-scm.com/download/win 2.下载完之后,双击安装 3.选择安装目录 4.选择组件 5.开始菜单目录名设置 6.选择使用命令行环境 ...

  6. Min swaps to sort array

    Given an array with distinct numbers, return an integer indicating the minimum number of swap operat ...

  7. python 下安装pymysql数据库

    两种方法来安装pymysql 方法一.利用命令来安装 安装:python37 -m pip install pymysql 升级:python37 -m pip install pymysql --u ...

  8. 「java.util.concurrent并发包」之 CAS

    一  引言 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能 ...

  9. LINK : fatal error LNK1104: cannot open file的解决方法

    结果是编译时通过了,但连接(F7)时却显示: LINK : fatal error LNK1104: cannot open file“Debug/1.exe” ============== 上一次运 ...

  10. jenkins+docker+git+etcd实现应用配置文件管理

    两台机器: 一台机器安装gitlab: http://www.cnblogs.com/cjsblogs/p/8716932.html 另一台机器安装etcd+docker+jenkins jenkin ...