ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## compress 古老的压缩格式 ~~~ yum install ncompress # 压缩 compress filename # 解压 uncompress filename.z ~~~ >[info] 只能压缩文件,默认压缩后删除源文件 ## gzip .gz ### 压缩 gzip [-#] FILE1 FILE2 …压缩完成后删除源文件 -#:指定压缩比,范围0-9,9为最优 zcat 临时查看压缩文件(不解压) ### 解压 unzip 测试OK gunzip COMPRESS_FILE1 COMPRESS_FILE2 … gzip -d ==gunzip 解压完成后删除源文件 说明:不支持-k选项来保留原文件 ## bzip2 .bz2 对于大文件,压缩优势明显 ### 压缩 bzip2 [-k -#] FILE1 FILE2 … -k:压缩时保留源文件 -#:指定压缩比0-9 ### 解压 bzip2 [-k] COMPRESS_FILE1 COMPRESS_FILE2 … bzip2 -d == bunzip2 -k:解压时保留源文件 bzcat 临时查看压缩文件(不解压) --- ## xz .xz ### 压缩 xz [-k#] FILE1 FILE2 … -#: 1-9, 默认是6 -k: 压缩时保留原文件 ### 解压 unxz [-dk] COMPRESS_FILE1 COMPRESS_FILE2 … -d:解压 xzdec:体积小 xzdecompress xzcat 临时查看压缩文件(不解压) ## zip 既归档又压缩的工具 ~~~ zip -r FILENAME.zip FILE1 FILE2 ...: #压缩后不删除原文件 unzip FILENAME.zip #解压 ~~~ ## archive归档 Tar(Tape ARchive,磁带归档的缩写) 归档本身并不意味着压缩 ### tar ~~~ 归档工具, .tar -c|--create # 创建归档文件 -x|--extract|--get # 展开归档 -r, --append # 将文件追加到归档文件中 -f|--file FILE.tar # 操作的归档文件 --xattrs # 归档时,保留文件的扩展属性信息 -p|--preserve-permissions # 保留原有属性信息 -t|--list # 不展开归档,直接查看归档了哪些文件 -k|--keep-old-files -C|--directory DIR # 改变保存路径 --exclude FILE # 在压缩的过程中,不要将 FILE 打包! --delete # 从归档文件 (而非磁带) 中删除 -N # 比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! # tar -N '2005/06/01' -zcvf home.tar.gz /home ~~~ ### 常用格式 ~~~ tar -cf 压缩 tar -xf 解压 ~~~ >[info] 若一个压缩文件无后缀,则无法解压,要先补充完整。 ### 常用示例 示例 1:创建一个 tar 归档文件 现在来创建一个 tar 文件,将 /etc/ 目录和 /root/anaconda-ks.cfg 文件打包进去。 ~~~ # tar -cvf myarchive.tar /etc /root/anaconda-ks.cfg ~~~ 示例 2:列出归档文件中的内容 ~~~ # tar -tf myarchive.tar ~~~ 示例 3:追加文件到归档(tar)文件中 下面来将 /etc/fstab 添加到 data.tar 中。 ~~~ # tar -rf data.tar /etc/fstab ~~~ 示例 4:从 tar 文件中释放文件以及目录 -x 选项用于释放出 tar 文件中的文件和目录。下面来释放上边创建的 tar 文件中的内容。 ~~~ # tar -xvf myarchive.tar ~~~ 这个命令会在当前目录中释放出 myarchive.tar 文件中的内容。 示例 5:释放 tar 文件到指定目录 ~~~ # tar -xvf myarchive.tar -C /tmp/ ~~~ 示例 6:释放 tar 文件中的指定文件或目录 假设你只要释放 tar 文件中的 anaconda-ks.cfg 到 /tmp 目录。 语法如下 ~~~ # tar –xvf {tar-file } {file-to-be-extracted } -C {path-where-to-extract} # tar -xf /root/myarchive.tar root/anaconda-ks.cfg -C /tmp/ ~~~ 示例 7:排除指定文件或类型后创建 tar 文件 ~~~ # tar -zcpvf myarchive.tgz /etc/ /opt/ --exclude=*.html ~~~ 示例 8:使用 -T 及 -X 创建压缩归档文件 想像这样一个场景:把想要归档和压缩的文件及目录记录到到一个文件,然后把这个文件当做 tar 命令的传入参数来完成归档任务;而有时候则是需要排除上面提到的这个文件里面记录的特定路径后进行归档和压缩。 在 tar 命令中使用 -T 选项来指定该输入文件,使用 -X 选项来指定包含要排除的文件列表。 假设要归档 /etc、/opt、/home 目录,并排除 /etc/sysconfig/kdump 和 /etc/sysconfig/foreman 文件,可以创建 /root/tar-include 和 /root/tar-exclude 然后分别输入以下内容: ~~~ # tar zcpvf mybackup-$(date +%Y-%m-%d).tgz -T /root/tar-include -X /root/tar-exclude ~~~