linux中的归档与压缩

时间:2022-10-15 16:22:31

这里介绍一下linux中tar的用法

先说一下tar中主要用到的参数

c 创建归档

x 提取归档

t 测试或列出归档内容

v 显示详细信息

f 指出要创建或提取的归档文件名称

z 使用gzip压缩类型

j 使用bz2压缩类型

r 追加 (只能往tar文件中追加)

下面举几个典型的例子


1.把/etc 打包压缩到/mnt下名为etc.tar.gz

[root@burvis ~]# tar zcvf /mnt/etc.tar.gz /etc |less   //创建并显示详细信息。并用gzip压缩
tar: Removing leading `/' from member names        //这里他把etc前的'/'给去掉了

显示的内容

/etc/X11/
/etc/X11/fontpath.d/
/etc/X11/fontpath.d/cjkuni-fonts-ukai
/etc/X11/fontpath.d/fonts-default
/etc/X11/fontpath.d/liberation-fonts
/etc/X11/fontpath.d/xorg-x11-fonts-misc:unscaled:pri=10
/etc/X11/fontpath.d/cjkuni-fonts-uming
。。。。。

。。。。。

/etc/dbus-1/system.d/cups.conf
/etc/dbus-1/system.d/hal.conf
/etc/dbus-1/system.d/org.gnome.SystemMonitor.Mechanism.conf
/etc/dbus-1/system.d/org.gnome.ClockApplet.Mechanism.conf
/etc/dbus-1/system.d/pulseaudio-system.conf
/etc/dbus-1/system.conf
/etc/passwd-
/etc/fprintd.conf

[root@burvis mnt]# ls
etc.tar.gz

2. tar ztvf /mnt/etc.tar.gz  列出/mnt下etc.tar.gz压缩包内的内容,并不压缩


3. tar zxvf /mnt/etc.tar.gz 用gzip解压,这是解压在当目录

    tar zxvf /mnt/etc.tar.gz -C /opt 这里时解压到指定的目标opt中 -C后跟要压缩到的路径

[root@burvis opt]# ls
etc

4. gunzip /mnt/etc.tar.gz  解压成tar文件相当于gzip -d /mnt/etc.tar.gz

    bunzip /mnt/etc.tar.bz2 解压成tar文件相当于bzip -d /mnt/etc.tar.bz2

[root@burvis mnt]# ls
etc.tar.gz
[root@burvis mnt]# gunzip etc.tar.gz
[root@burvis mnt]# ls
etc.tar

5. 往tar文件中追加文件

   tar rf /mnt/etc.tar /boot   //追加boot到/mnt/etc.tar中

[root@burvis mnt]# tar rf etc.tar /boot
tar: Removing leading `/' from member names

[root@burvis mnt]# tar tvf /mnt/etc.tar |less
drwxr-xr-x root/root         0 2011-08-13 14:12 etc/
drwxr-xr-x root/root         0 2011-08-10 15:14 etc/X11/
drwxr-xr-x root/root         0 2011-08-11 09:01 etc/X11/fontpath.d/
lrwxrwxrwx root/root         0 2011-08-11 09:01 etc/X11/fontpath.d/cjkuni-fonts-
ukai -> /usr/share/fonts/cjkuni-ukai

。。。。。。

。。。。。。

-rw-r--r-- root/root   3791744 2011-08-10 15:19 boot/vmlinuz-anaconda
-rw-r--r-- root/root  13796674 2011-08-10 15:19 boot/initramfs-2.6.32-71.el6.x86_64.img
-rw-r--r-- root/root  30063052 2011-08-10 15:19 boot/initrd-anaconda.img
-rw-r--r-- root/root     97862 2010-09-01 13:48 boot/config-2.6.32-71.el6.x86_64
-rw-r--r-- root/root   2226490 2010-09-01 13:48 boot/System.map-2.6.32-71.el6.x86_64
drwx------ root/root         0 2011-08-10 15:10 boot/lost+found/

6.单独从一个gzip压缩包中提取出一个文件

  tar zf /mnt/etc.tar.gz --get etc/passwd 单独提取出passwd

[root@burvis mnt]# tar zf /mnt/etc.tar.gz --get etc/passwd
[root@burvis mnt]# ls
etc  etc.tar  etc.tar.gz
[root@burvis mnt]# cd etc
[root@burvis etc]# ls
passwd

7.单独删除一个tar文件中的一个文件(只能是tar文件。不能时.gz等压缩文件)

 tar f /mnt/etc.tar --delete etc/passwd