一 再说说ls
ls -a 全部文件,连同隐藏文件
-A 全部文件, 不包括. 和.. 这两个目录
-d 仅列出目录本身, 而不是目录内的文件数据
-f 直接列出结果, 而不进行排序
-i 列出inode号码
-l 详细信息显示
-r 将排序反序输出
-R 连同子目录一起列出来
-S 以文件大小排序
-t 以时间排序
二 gzip 压缩与解压缩(后缀.gz)
(不做特殊操作的话, 压缩时会把源文件变成压缩文件, 就是找不到源文件了, 解压也是)
-c 将压缩的数据输出到屏幕上
-d 解压的参数
-t 用来检验一个压缩文件的一致性
-v 显示源文件/压缩文件的压缩比
-# 数字 压缩等级 -1 最快,效率低, -9 最慢, 效率高, 默认是-6
例:
找出/etc 下面(不含子目录)容量最大的文件, 将它复制到/tmp,然后以gzip压缩。
ls -ldSr /etc/* d仅是目录本身 S 以文件大小排序 r 反序
cd /tmp
cp /etc/services
gzip -v services
ll /etc/services /tmp/services*
zcat, zmore, zless 读取压缩文件内容
zcat services.gz
解压 gzip -d services.gz
gzip -9 -c services > services.gz
用最佳压缩比压缩, 保留源文件(从屏幕转到文件)
找压缩文件的内容
zgerp -n '要找的内容' services.gz
三 bzip2 比gzip压缩率更高,时间相对长(后缀.bz2)
-c 将压缩的过程产生的数据输出到屏幕上。
-d 解压参数
-k 保留源文件
-z 压缩参数
-v 源文件/压缩文件比 等信息
-# 与zip一样
bzip -v services 此时services 变成 services.bz2
bzcat, bzmore, bzless, bzgrep
bzip -d services.bz2 解压
四 更牛B的xz (压缩率更高, 时间更长, 后缀xz)
-d 解压
-t 测试文件的完整性
-l 列出文件的相关信息
-k 保留原本的文件不删
-c 将数据输出到屏幕上
- # 一样
xz -v services 压缩成services.xz
xz -l services.xz 查看压缩后的信息
xzcat services.xz
xz -d services.xz
xz -k services 保留源文件
五 tar
-c 建立打包文件,
-t 查看打包文件的内容, 有哪些文件名
-x 解包或解压缩
-z 通过gzip压缩或解压缩
-j 通过bzip2进行压缩和解压缩
-J 通过xz进行压缩和解压缩
-v 显示压缩解压缩的过程中, 将正在处理的文件显示出来
-C 解压缩显示指定目录
-f 指定要压缩解压缩打包解包的文件
-p 保留备份数据原本的权限和属性
-P 保留绝对路径
--exclude=文件 在压缩过程中, 不要将指定文件打包
1 打包解包
tar -cvf a.txt.tar b.txt c.txt 将b.txt c.txt 打包成a.txt.tar
tar -tvf a.txt.tar 显示打包文件
tar -xvf a.txt.tar 解包
2 打包加压缩
tar -jcv -f xx.tar.bz2 要被压缩的目录文件 打包压缩文件 f 后面要紧跟文件
tar -jtv -f xx.tar.bz2 查看压缩文件 j可以不加
tar -jxv -f xx.tar.bz2 -C 解压位置 解压文件
time tar -jvcf d.tar.bz2 a.txt b.txt 可以显示压缩文件的时间
tar -jpcv -f /root/etc.tar.xz /etc p是保留了权限
下面是一个注意
tar -jcvf vv.tar.bz2 /etc/cloud
会提示警告:
tar: Removing leading `/' from member names
查看压缩文件时, 会发现etc 前面没有/ 了, 变成了相对路径
tar -jtvf vv.tar.bz2
drwxr-xr-x root/root 0 2019-08-06 02:08 etc/cloud/
drwxr-xr-x root/root 0 2017-08-18 12:00 etc/cloud/templates/
-rw-rw-r-- root/root 1506 2017-05-19 11:17 etc/cloud/templates/sources.list.debian.tmpl
-rw-rw-r-- root/root 912 2017-05-19 11:17 etc/cloud/templates/hosts.redhat.tmpl这是linux为了文件的安全,自动删除了etc前面/, 把他变成相对路径,这也是为什么当初压缩是, 会出现警告。
因为, 这个压缩包,当解压时, 不去掉/ , 是绝对路径, 可能会覆盖源文件的的内容。 去掉/ 变成相对路径, 就不会覆盖原来的文件。
如果非得要后面的路径是绝对路径, 可以如下执行, 虽然还会警告, 但是不会删掉 /
tar -jPcvf vv1.tar.bz2 /etc/cloudtar -jtvf vv1.tar.bz2
tar: Removing leading `/' from member names
drwxr-xr-x root/root 0 2019-08-06 02:08 /etc/cloud/
drwxr-xr-x root/root 0 2017-08-18 12:00 /etc/cloud/templates/
3 仅解开单一文件
先找到文件的位置
tar -jtvf d.tar.bz2 | grep 'a.txt'
-rw-r--r-- root/root 27 2019-09-27 21:52 a.txt
tar -jxvf d.tar.bz2 a.txt 解压
这里要特别说明下-rw-r--r-- root/root 27 2019-09-27 21:52 etc/a.txt
长这个样,tar -jxvf d.tar.bz2 etc/a.txt 注意路径
4 不包含某个文件的打包压缩文件
就要用到 --exclude了
tar -jvc -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2