压缩查找命令
一、压缩命令
1.tar
Linux系统中自带两个原始压缩工具 : gzip , bzip2
但他们都有不能打包压缩文件和压缩后不会保留原有文件的问题
同时Linux中有自带的打包工具 : tar , 将他们联合起来可以各司其职发挥作用
关于tar的参数作用:
1 | c : 创建压缩文件 |
①压缩
关于tar的压缩语法:
1 | tar 参数 生成的压缩包的名字 要压缩的文件(文件或者目录) (要压缩的文件) |
eg : 使用gzip进行压缩:
eg : 使用bzip2进行压缩
② 解压缩
解压的语法:
1 | #1. 解压到当前目录 |
eg : 使用gzip方式进行解压
eg : 使用bzip2方式进行解压
2.zip
zip并不是Linux自带的,需要安装才能使用
1 | #ubuntu |
①压缩
压缩的语法
1 | zip [-r] 压缩包名 要压缩的文件 # 加入 -r 参数才能将要压缩的文件中的子目录一起压缩 |
eg:
②解压缩
解压缩的语法
1 | #压缩到当前目录 |
eg:
3.rar
rar这种压缩格式在Linux中并不常用,而是在windows中常用的格式
如果在Linux中压缩解压这种格式的文件需要额外安装
1 | #Ubuntu |
1 | #centos 等各种Linux版本 |
①压缩
rar 同 zip 类似,如果压缩目录就加入参数 -r
且rar也会自动添加后缀
1 | #压缩语法 |
eg:
②解压缩
1 | #解压缩语法 |
eg:
4.xz
.xz格式的压缩解压缩都较为繁琐,需要借助tar进行打包
①压缩
1 | #压缩语法 |
eg:
②解压缩
1 | #解压缩语法 |
eg: 由于释放到原本的目录会覆盖展现不出效果,因此移动到另一文件观察效果
二、查找命令
当查找的需求比较简单时可以使用 locate which whereis
复杂时可以使用find和grep
对应要搜索的文件内容, 建议放到引号中, 因为关键字中可能有特殊字符, 或者有空格, 从而导致解析错误。 关于引号, 单双都可以
1.find
find 的功能非常强大,可根据文件属性进行查找
①文件名(-name)
1 | #根据文件名搜索的语法 |
1 | #eg:搜索 root 家目录下文件后缀为txt的文件 |
②文件类型(-type)
1 | #语法格式 |
文件类型 | 类型的字符描述 |
---|---|
普通文件类型 | f |
目录类型 | d |
软连接类型 | l |
字符设备类型 | c |
块设备类型 | b |
管道类型 | p |
本地套接字类型 | s |
1 | #eg:root目录下软链接类型的文件 |
③文件大小(-size)
1 | #语法格式 |
文件大小区间非常重要
1.-size 4k : 表示的区间为(3k,4k]
2.-size -4k : 表示的区间为(0k,3k]
3.-size -4k : 表示的区间为(4k,无穷)
1 | #eg:搜索当前目录下大于1M且小于等于3M的文件 |
④目录层级
由于Linux目录是树形,所以目录可能有很多层
1 | #语法格式 |
这两个参数不能单独使用,必须和其他属性一起使用
1 | #eg:从根目录开始搜索,最多5层,文件后缀为.txt |
⑤同时执行多个操作
5.1: -exec
-exec 是find的参数, 可以在exec参数后添加其他需要被执行的shell命令。
1 | #语法格式 |
1 | #eg: 搜索最多两层目录,以 .txt结尾的文件,并查看文件信息 |
5.2: -ok
加入 -ok 执行shell时会向用户发起询问,比如在删除搜索结果的时候
1 | #语法格式 |
1 | #eg: |
5.3: xargs
xargs 参数不同于 -exec和-ok 需要在结尾加符号,有着更直观简便的写法
并且在处理数据时 xargs更高效
-exec: 将find查询的结果逐条传递给后边的shell命令
xargs: 将find查询的结果一次性传递给后边的shell命令
1 | #语法格式 |
1 | #eg:查找文件并显示信息 |
2.grep
1 | #语法格式 |
1 | #eg:搜索指定目录中哪些文件中包含字符串 include 并且显示关键字所在的行号 |
3.locate
locate可看作是一个简化版的find, 但是locate的效率比find要高很多。
原因在于它不搜索具体目录,而是搜索一个本地的数据库文件,这个数据库中含有本地所有文件信息。
Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动的文件。
为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
1 | #先进行数据库更新 |
关于正则表达式
1 | 在正则表达式中 .可以匹配任意一个 非 \n的单字符 |