@Chiang
2019-09-08T10:42:55.000000Z
字数 1619
阅读 633
Linux
Linux 下面,扩展名没有什么特殊的意义.为了方便记忆会有一些特殊的命名方式.
常见压缩文件扩展名
*.z compress 程序压缩的文件
*.zip zip 程序压缩的文件
*.gz gzip 程序压缩的文件
*.bz2 bzip2 程序压缩的文件
*.xz xz 程序压缩的文件
*.tar tar 程序打包的文件,并没有压缩过
*.tar.gz tar 程序打包的文件,并且经过gzip的压缩
*.tar.bz2 tar 程序打包的文件,并且经过bzip2的压缩
*.tar.xz tar 程序打包的文件,并且经过xz的压缩
依次向下压缩效率越高,相应的耗费时间更长
gzip [-cdtv#] 文件名
zcat 文件名.gz
gzip -v services 压缩
zcat services.gz
gzip -d services.gz 解压缩
gzip -9 -c services > services.gz 输出屏幕数据流重定向 压缩比默认 -6
zgrep -n 'http' services.gz
gunzip解压[1]
默认状态下原本的文件会被压缩成为.gz后缀的文件,源文件就不再存在了
bzip2 [-cdkzv#] 文件名
bzcat 文件名.bz2
bzip2 -9 -c services > services.bz2
xz [-dtlkc#] 文件名
xcat 文件名.xz
# 打包压缩
tar [-z|-j|-J] [cv] [-f 待建立的新文件] filename
# 查看文件名
tar [-z|-j|-J] [tv] [-f 既有的tar文件名]
# 解压缩
tar [-z|-j|-J] [xv] [-f 既有的tar文件名] [-C 目录]
-c 打包
-t 查看
-x 解包
-z gzip压缩 文件名 *.tar.gz
-j bzip2 压缩 文件名 *.tar.bz2
-J xz 压缩 文件名 *.tar.xz
-v 显示过程
-f 文件名
-C 目录
-p 保留原本权限
-P 保留绝对路径
-- exclude=FILE 排除不需要打包的文件
# time显示程序运行时间
time tar -zpcv -f /root/etc.tar.gz /etc
# 实际目录约占空间大小1MB
du -sm /etc
# 解包
tar -jxv -f /root/etc.tar.bz2 -C /tmp
# 查包,解单包
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
tar -jxv -f /root/etc.tar.bz2 etc/shadow
# 排除不需要打包的文件
tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* \
--exclude=/root/system.tar.bz2 /etc /root
# 备份比某个时刻还要新的文件
# find 找出比/etc/passwd还要新的文件
find /etc -newer /etc/passwd
# 打包
tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 \
--newer-mtime="2019/09/08" /etc/*
tarfile
tar -cv -f file.tar
tarball
tar -jcv -f file.tar.bz2
tar -cvf - /etc | tar -xvf -
cp -r /etc /tmp
详细命令可以通过 man tar 或者 info tar 或者 tar --help 在线查看
参考资料:
鸟哥的Linux私房菜