Linux常用命令--文件的压缩和解压缩

在Linux系统中,我们通常使用的文件压缩命令有:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(切割文件) , zgrep(在压缩文件中寻找匹配的正则表达式), zip ,unzip, tar ,rar。

最后四个是我比较常用的,今天的笔记就写这四个的好了。

1、tar:

tar命令:tar [选项...] [FILE]...

输入“tar -?”获取相关帮助信息,tar的帮助文档给出示例如下:
示例
  tar -cf archive.tar foo bar  # 从文件 foo 和 bar 创建归档文件archive.tar。
  tar -tvf archive.tar             # 详细列举归档文件 archive.tar中的所有文件。
  tar -xf archive.tar              # 展开归档文件 archive.tar中的所有文件。
如果是要压缩文件夹的话,输入:
tar -cvf dirArchive.tar /dirName
同样的,要将归档文件解压到特定文件夹的话,则是:
tar -xvf dirArchive.tar /dirName

下面复习一下。我们先人为做个文件夹出来,里面放置若干文件夹和文件:

Linux常用命令--文件的压缩和解压缩

我们首先创建一个tar文件,先压缩一个文件夹(testdir):
tar -cf testdir.tar testdir
然后列出该压缩包里的结构:

Linux常用命令--文件的压缩和解压缩

接着我们向这个压缩包追加文件:

Linux常用命令--文件的压缩和解压缩

当然了,上述单步操作没必要做了,压缩包里面已经有这个文件。

然后再看看这个压缩包里的结构:

Linux常用命令--文件的压缩和解压缩

如果使用示例中的-v选项,则会将压缩包里的文件属性全部列出。包括权限,创建人,字节大小,修改时间和文件名:

Linux常用命令--文件的压缩和解压缩

从tar压缩文件中解压并显示文件列表:

Linux常用命令--文件的压缩和解压缩

一般来说比较常用到的选项有主操作选项:

Linux常用命令--文件的压缩和解压缩

另外再练习一下其他的一些用法:

1、当压缩testdir目录的时候,需要将文件夹根路径内的test文件排除:

Linux常用命令--文件的压缩和解压缩

2、只压缩比指定时间更新的文件:

Linux常用命令--文件的压缩和解压缩

3、压缩所有文件名前缀为“te”的文件或文件夹(或者压缩后缀为“st”的文件):

Linux常用命令--文件的压缩和解压缩

最后补充一下常用的选项:

-p, --preserve-permissions, --same-permissions
                             保留解压文件权限信息(默认只为超级用户服务)
      --preserve             与 -p 和 -s 一样
      --same-owner           尝试解压时保持所有者关系一致(超级用户默认此项)
-r, --append                 追加文件至归档结尾
-u, --update               仅追加比归档中副本更新的文件
-k, --keep-old-files        解压时不要替换存在的文件
      --keep-newer-files
                             不要替换比归档中副本更新的已存在的文件
      --no-overwrite-dir     保留已存在目录的元数据
      --overwrite            解压时重写存在的文件
      --overwrite-dir
                             解压时重写已存在目录的元数据(默认)
                            
      --recursive-unlink     解压目录之前先清除目录层次
      --remove-files         在添加文件至归档后删除它们
-N, --newer=DATE-OR-FILE, --after-date=DATE-OR-FILE 只保存比 DATE-OR-FILE 更新的文件

2、rar:

rar <command> -<switch 1> -<switch N> <archive> <files...><@listfiles...> <path_to_extract\>

Linux系统的默认软件包里是不包含rar压缩工具的,所以我们先安装rar:
sudo apt-get install rar

<command>选项只可以从给出的选项中输入一个(且只能一个),我们看一下它提供的命令列表:Linux常用命令--文件的压缩和解压缩

使用举例,比如说现在我们要进行文件压缩:

Linux常用命令--文件的压缩和解压缩

在完成压缩之后,我们可以通过命令l获取压缩文件内具体的结构信息:

Linux常用命令--文件的压缩和解压缩

甚至可以通过命令p将压缩文件内的所有信息输出到控制台:

Linux常用命令--文件的压缩和解压缩

<switch N>部分则提供了一些功能性的选项。
比如说以追加性的方式更新压缩文件可选用-ad:

Linux常用命令--文件的压缩和解压缩

或者说想把某个文件排除在外可以选用开关-x(注意,要排除的串要紧跟在x后面,不用加任何符号),比如我们这里想要将文件夹根路径下凡是“te”开头的文件都排除:

Linux常用命令--文件的压缩和解压缩

还有加密,用开关-p,同样的,密码紧随p后面即可:

Linux常用命令--文件的压缩和解压缩

如果相对文件进行解压或者直接打开文件,就会要求你输入密码:

Linux常用命令--文件的压缩和解压缩

Linux常用命令--文件的压缩和解压缩

除此之外,还有一些常用的选项有:
ag[format]    Generate archive name using the current date
cl                 Convert names to lower case
cu                Convert names to upper case
df                 Delete files after archiving
ed                Do not add empty directories
dw               Wipe files after archiving
其他的命令和开关可参照帮助手册。

3、zip  , unzip:

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]

zip和unzip的使用方法是比较简单的,甚至连帮助文档都写得很简单,所以也就没什么笔记好写的了,直接看帮助文档即可。

上一篇:HDU 4123 Bob’s Race 树的直径+单调队列


下一篇:媒体元素