1. rar/unrar:(.rar)
压缩目录:$ rar a archive.rar dir_path #压缩一个目录到archive.rar,a选项是添加,也可以添加文件
加密:$ rar a -p123 archive.rar file1 file2 # 加密,密码是123
解压到当前目录:$ unrar e archive.rar
查看压缩文件内容:
$ unrar l archive.rar # l选项输出的只有文件名,没有相对路径
$ unrar v archive.rar # 带完整的路径名,unrar -h:v[b,t]  Verbosely list archive [technical,bare]
$ unrar vb archive.rar # 输出路径文件名,不带其他信息
参考:http://www.lampdocs.com/using-rar-archiver-in-linux/
2. bzip2/bunzip2:(.bz2)
bunzip2等同于bzip2 -d,bzip2和gzip一样,只针对单个文件操作,不能用在文件夹上,想要用在文件夹上,先用tar打包,再压缩;要一一压缩某文件夹下的所有文件,可以用命令:find . -name "" -exec bzip2 '{}' ';'
-v:显示详细信息
-f:bzip2再解压和压缩时默认不会覆盖同名文件,使用此选项可以覆盖同名文件;
解压并替换.bz2文件:
bunzip2 archive.tar.bz2 # archive.tar.bz2 --> archive.tar
压缩并替换原来的文件:
bzip2 archive.tar # archive.tar --> archive.tar.bz2

3. tar: (.tar)
打包目录:
$ tar cf archive.tar dir_path # tar 命令对于目录没有特别的对待,c选项表示创建,f选项后面跟文件或者目录,f选项需要再后面
$ tar cf 
添加一个文件到.tar:
$ tar rf archive.tar file_to_add
更新.tar中的一个文件:
$ tar uf archive.tar newer_file
当更新一个文件后,tar把新文件接在.tar文件的后面,但并不删除旧的文件,解包的时候,接在后面的新文件自然覆盖前面的就文件:

[shenyan@T61 book]$ tar xvf overwrite.tar 
overwrite
overwrite2
overwrite # 又解压出一个overwrite,覆盖了前面的overwrite;
上面的overwrite.tar的结构应该如下:
  { 旧的 overwrite | overwrite2 | 新的 overwrite }但解压的时候,加上 --keep-old-files,只能得到旧文件了;加上 --keep-newer-files 依然能得到新的文件; 
  

查看.tar文件:
$ tar tf archive.tar # 只列出文件的相对路径名
$ tar tvf archive.tar # 列出详细信息
解包:
tar 解包的时候有个问题,它会覆盖已经存在的文件,不会给出提示;有两个选项可以防止这个问题,--keep-old-files(-k)和--keep-newer-files,但想要在覆盖的时候给提示:
$ tar --keep-newer-files  -xvf archive.rar # 这时tar会给出消息如下:

[shenyan@T61 book]$ tar --keep-newer-files -xvf overwrite.tar
overwrite
tar: 当前的““overwrite””更新或一样新

$ tar --keep-old-files-xvf archive.rar

[shenyan@T61 book]$ tar --keep-old-files -xvf overwrite.tar 
overwrite

同样打包的时候,也会覆盖已经存在的.tar文件,即使用了--keep-old-files和--keep-newer-files文件也没有用;

$ tar xvf archive.tar # 解压到当前目录