Freebsd下压缩解压文件详解

压缩篇:

把/usr/webgames目录下的文件打包.命名为bak.tar.gz 放到/usr/db-bak目录里

下面命令可以在任意目录执行.无视当前目录和将要存放文件的目录.
tar -zcvf /usr/db-bak/bak.tar.gz /usr/webgames

当用户在/usr/db-bak/目录的时候.可以使用下面这条命令.
tar -zcvf bak.tar.gz /usr/webgames

当用户在/usr/webgames目录的时候.可以使用下面这条命令.
tar -zcvf /usr/db-bak/bak.tar.gz *

用户压缩目录的时候.如果设置了具体路径.压缩的时候这些目录也会包含在压缩包中.
如tar -zcvf bak.tar.gz /usr/webgames 解压后的文件是 /usr/webgames/被压缩的文件.
而tar -zcvf /usr/db-bak/bak.tar.gz * 解压后的文件直接就是被压缩的文件.没有上级目录.

谷歌和百度推荐大家压缩的时候使用相对路径.也就是命令3那样的方式.
方法1和2使用时会提示 tar: Removing leading ‘/’ from member names 我一直都是无视系统提示的.

 

解压篇:

已知bak.tar.gz在usr/db-bak目录.要解压到/usr/webgames目录.

下面命令可以在任意目录执行.无视当前目录和将要存放文件的目录.
tar zxvf /usr/db-bak/bak.tar.gz -C /usr/webgames

如果当前在usr/db-bak目录的话.可以使用下面这条命令.
tar zxvf bak.tar.gz -C /usr/webgames

如果当前在usr/webgames目录的话.可以使用下面这条命令.
tar zxvf /usr/db-bak/bak.tar.gz -C .

上面3种方法可以理解为一句话解压.下面的这个比较罗嗦.但我经常用.

cd /usr/webgames                     // 进入/usr/webgames目录
cp /usr/db-bak/bak.tar.gz .         // 把db-bak目录下的bak.tar.gz文件复制到当前目录
tar zxvf bak.tar.gz                      // 解压bak.tar.gz
rm bak.tar.gz                           // 删除bak.tar.gz

cd /usr/webgames&&cp /usr/db-bak/bak.tar.gz .&&tar zxvf bak.tar.gz&&rm bak.tar.gz
一个&的话是在前台运行命令.运行完会返回信息.两个&的话直接同时运行.不会返回信息的.

普通解压不需用-C参数的.但是解压到指定目录的时候就必须带了.注意结尾的点.
如果是上面方法1和2的压缩方式.那我们还要继续移动文件.方法3的话就可以省去繁琐的移动了.

原文地址:https://www.cnblogs.com/diony/p/3326374.html