*.tar 用 tar –xvf 解压 *.gz 用 gzip -d或者gunzip 解压 *.tar.gz和*.tgz 用 tar –xzf 解压 *.bz2 用 bzip2 -d或者用bunzip2 解压 、*.tar.bz2用tar –xjf 解压

  1、*.tar 用 tar –xvf 解压

  2、*.gz 用 gzip -d或者gunzip 解压

  3、*.tar.gz和*.tgz 用 tar –xzf 解压

  4、*.bz2 用 bzip2 -d或者用bunzip2 解压

  5、*.tar.bz2用tar –xjf 解压

  6、*.Z 用 uncompress 解压

  7、*.tar.Z 用tar –xZf 解压

  8、*.rar 用 unrar e解压

  9、*.zip 用 unzip 解压

http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz

 

要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:

tar cjf - logs/ | split -b 1m --numeric-suffixes  - logs.tar.bz2.

完成后会产生下列文件:

logs.tar.bz2.01, logs.tar.bz2.02, logs.tar.bz2.03

要解压的时候只要执行下面的命令就可以了:

cat logs.tar.bz2.a* | tar xj



再举例:

要将文件test.pdf分包压缩成500 bytes的文件:

tar czf - test.pdf | split -b 500 - test.tar.gz

最后要提醒但是那两个"-"不要漏了,那是tar的ouput和split的input的参数。



tar cjf - logs/ |split -b 1m - logs.tar.bz2.

完成后会产生下列文件:

logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac

要解压的时候只要执行下面的命令就可以了:

cat logs.tar.bz2.a* | tar xj
或者:
cat logs.tar.bz2.a* > logs.tar.bz2
tar -jxvf logs.tar.gz2
昨天导出了一个oracle全表dmp文件,约60G。compress压缩后还有12G。

本想下载到本地硬盘E,无奈看了下,本地硬盘格式是fat32的,而超过4G的文件需要NTFS才行。手动转换文件系统也挺麻烦,直接转怕把盘废了,备份么要1个多小时。

就想了个其他的办法,将dmp文件分块。12G么分成3G*4好了。

于是查找资料,发现其实并不是tar命令本身支持的,而是直接得将数据文件强行分隔。

压缩xxx.dmp文件:

compress xxx.dmp

生成xxx.dmp.Z。



将文件分块:

split -b xxx.dmp

生成xaa,xab,xac,xad,xae五个文件(分四块还不够,多出来一点);



然后就是传输到目标server:

scp xaa username@192.168.11.83:

当然,这个传输要很长时间(网络跨度比较大)。

而且scp又不能跑后台运行,查了下资料,发现可以用ssh-keygen这个工具来生成公钥和私钥来进行无密码传输,省去了交互的部分。就可以直接在后台运行了。这部分下下面的一篇文章中有详细的介绍(转过来的)。



传输完成后,再将各个分块文件合并:

cat xa* > xxx.dmp.Z

然后就是uncompress xxx.dmp.Z了。



另外就压缩工具再记录一下:

tar

j tar.bz2格式压缩(经过测试,相对于zip/gzip/compress压缩的的效率最高);

z tar.gz格式压缩;

v 显示压缩过程;

f 指定文件;

t 预览压缩包中的内容;

p 保留原压缩文件中的权限;

c 表示打包;

x 表示解包;

举例:

有目录或文件lyon

现在要压缩成tar.gz格式的,且压缩后的文件名为:lyon.tar.gz

则有: tar zcvf lyon.tar.gz lyon      (这个命令unix和linux都是支持的)



如果要压缩成tar.bz2格式

则有: tar jcvf lyon.tar.bz2 lyon    (这个格式在有些unix上不支持)



直接打tar包:

tar cvf lyon.tar lyon

然后压缩:

gz:    gzip -S .gz lyon.tar

bz2:  bzip2 -S .bz2 lyon.tar



对以上文件打包了,然后又想查看这个包里面的内容,则可以用t参数来实现:

tar:tar vtf lyon.tar

tar.bz2: tar jtvf lyon.tar.bz2

tar.gz:    tar ztvf lyon.tar.gz



如果想保留原有文件的权限,则有:

tar zxvfp lyon.tar.gz

 

 

split文件切割: split [选项] [要切割的文件] [输出文件名前缀]

-a, --suffix-length=N  切割文件的后缀的位置,default 为2

-b, --bytes=SIZE       指定块的大小,可以指定size的单位,b表示512字节,k代表1K字节,m代表1M字节,还有G,T,P

-d, --numeric-suffixes 利用数据前缀,而不是字母前缀,默认是字母前缀。

-l, --lines=NUMBER     指定行数进行切割。

例:

1、对examples.desktop文件进行切割。

linux@ubuntu:~$ cat -n examples.desktop

     1 [Desktop Entry]

     2 Version=1.0

     3 Type=Link

     4 Name=Examples

     5 Comment=Example content for Ubuntu

     6 URL=file:///usr/share/example-content/

     7 Icon=folder

     8 X-Ubuntu-Gettext-Domain=example-content

     9

linux@ubuntu:~$ split -l 1 examples.desktop  ex_

linux@ubuntu:~$ ls ex_*

ex_aa  ex_ab  ex_ac  ex_ad  ex_ae  ex_af  ex_ag  ex_ah  ex_ai

linux@ubuntu:~$

观察examples.desktop有9行,我们测试每一行分割成一个小文件。结果生成了ex_aa ... ex_ai9个文件。



2、对examples.desktop进行分割,以数字后缀命名。

nux@ubuntu:~$ split -l 1 --numeric-suffixes  examples.desktop cdyemail_

linux@ubuntu:~$ ls cdye*

cdyemail_00  cdyemail_02  cdyemail_04  cdyemail_06  cdyemail_08

cdyemail_01  cdyemail_03  cdyemail_05  cdyemail_07

linux@ubuntu:~$



3、对二进制文件进行分割,块的大小为4G

linux@ubuntu:~$ ls -h -l  data.tar.gz  #文件大小为147M,1个20M能分8个

-rw-r--r-- 1 linux linux 147M 2011-01-28 21:04 data.tar.gz

linux@ubuntu:~$ split -b 4000M --numeric-suffixes data.tar.gz data.tar.gz.
 linux@ubuntu:~$ ls email_* email_00 email_01 email_02 email_03 email_04 email_05 email_06 email_07 通过测试可以看出已经分割成8个文件了。 Tar 实现增量备份 1.使用find 命令找出etc目录下1天内修改过的文件,导入到file文件 find /etc -mtime -1 > file cat file 2. 使用TAR备份最近1天更改过的文件 tar -cvf etc.tar -T file Scp 命令 1、将本地文件拷贝到远端 scp 文件 用户@ 主机名:远端目录 scp 123.txt root@192.168.1.1:/ 2、讲远端目录拷贝到本地 scp -r 用户@主机名:远端目录 本地目录 scp -r root@192.168.1.2:/456.txt ~ p7zip sudo apt-get install p7zip 7za x phpMyAdmin-3.3.8.1-all-languages.7z -r -o ./ 7za a -t7z -r Mytest.7z /opt/phpMyAdmin-3.3.8.1-all-languages/*

 

你可能感兴趣的:(unzip)