`
zengshaotao
  • 浏览: 761759 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

tar 将软连接的文件也进行打包

 
阅读更多
1 tar [-cxtzjvfpPN] 文件与目录 ....

 

参数

-c :建立一个压缩文件的参数指令(create 的意思)。
-x :解开一个压缩文件的参数指令。
-t :查看 tarfile 里面的文件。特别注意,在参数的下达中,c/x/t 仅能存在一个,不可同时存在, 因为不可能同时压缩与解压缩。
-z :使用gzip进行压缩打包文档。
-j :使用bzip2进行压缩打包文档。
-v :压缩的过程中显示文件。这个常用,但不建议用在背景执行过程。
-f :使用档名。请留意,在 f 之后要立即接档名,不要再加参数。
例如使用“tar -zcvfP tfile sfile”就是错误的写法,要写成“tar -zcvPf tfile sfile”才对。
(关于这点我保留意见,因为平时我解压,都是-xvfz….没见有神马不对的….也许是改进了?)
-p :使用原文件的原来属性(属性不会依据使用者而变)。
-P :可以使用绝对路径来压缩。
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中。
–exclude FILE:在压缩的过程中,不要将 FILE 打包。

注意

  • 最好是打包时,进入要打包的文件目录,减少目录层级注意
  • 如果是使用后台进程进行打包时,没有必要加上v参数注意
  • 对文件后缀的约定:无使用压缩:.tar 、gzip压缩:.tar.gz、bzip2压缩:.tar.bz2

范例

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

1 [root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
2 [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc<==打包后,以 gzip 压缩
3 [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc<==打包后,以 bzip2 压缩

# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
# 上述指令在执行的时候,会显示一个警告讯息:
# 『tar: Removing leading `/” from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

1 [root@linux ~]# tar -ztvf /tmp/etc.tar.gz

# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

1 [root@linux ~]# cd /usr/local/src
2 [root@linux src]# tar -zxvf /tmp/etc.tar.gz

# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

1 [root@linux ~]# cd /tmp
2 [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!

1 [root@linux ~]# tar -zcvpf /tmp/etc.tar.gz /etc

# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份

1 [root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai

1 [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!

1 [root@linux ~]# cd /tmp
2 [root@linux tmp]# tar -cvf - /etc | tar -xvf -

# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 – 而输入档也变成 – ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

另外一些范例

1、用gzip打包文档/data/ora9i下的目录oradata下的数据

1 cd /data/ora9i
2 tar -zcvpf oradata_zcvpf.tar.gz oradata

2、目录中有link时,加h与不加h的区别
在oradata下指向/tmp的软链接

1 cd /data/ora9i/oradata
2 mkdir tmp
3 ln -s /tmp ./tmp

当前目录结构:

1 [root@oracle oradata]# ll

total 526112
-rw-r—–  1 oracle dba    1613824 Mar 22 11:53 control01.ctl
-rw-r—–  1 oracle dba    1613824 Mar 22 11:53 control02.ctl
-rw-r—–  1 oracle dba   26222592 Mar 22 11:53 indx01.dbf
-rw-r—–  1 oracle dba  262152192 Mar 22 11:53 system01.dbf
-rw-r—–  1 oracle dba   41951232 Mar  6 15:14 temp01.dbf
lrwxrwxrwx  1 root   root         4 May 18 14:10 tmp -> /tmp
-rw-r—–  1 oracle dba   10493952 Mar 22 11:53 tools01.dbf
-rw-r—–  1 oracle dba  209723392 Mar 22 11:53 undotbs01.dbf
-rw-r—–  1 oracle dba   26222592 Mar 22 11:53 users01.dbf
对目录进行打包,不加h

1 [root@oracle ora9i]#tar -zcvpf oradata_zcvpf.tar.gz oradata
2 ......

查看下文档:

1 [root@oracle ora9i]# tar -ztvf oradata_zcvpf.tar.gz

drwxr-xr-x oracle/dba        0 2010-05-18 14:10:09 oradata/
-rw-r—– oracle/dba 41951232 2010-03-06 15:14:26 oradata/temp01.dbf
-rw-r—– oracle/dba  1613824 2010-03-22 11:53:13 oradata/control01.ctl
-rw-r—– oracle/dba 209723392 2010-03-22 11:53:13 oradata/undotbs01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/users01.dbf
-rw-r—– oracle/dba 262152192 2010-03-22 11:53:13 oradata/system01.dbf
-rw-r—– oracle/dba   1613824 2010-03-22 11:53:13 oradata/control02.ctl
lrwxrwxrwx root/root          0 2010-05-18 14:10:09 oradata/tmp -> /tmp
-rw-r—– oracle/dba  10493952 2010-03-22 11:53:13 oradata/tools01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/indx01.dbf
还是软连接

对目录进行打包,加h

1 [root@oracle ora9i]#tar -zcvphf oradata_zcvphf.tar.gz oradata
2 ......

查看下文档:

1 [root@oracle ora9i]# tar -ztvf oradata_zcvphf.tar.gz

drwxr-xr-x oracle/dba        0 2010-05-18 14:10:09 oradata/
-rw-r—– oracle/dba 41951232 2010-03-06 15:14:26 oradata/temp01.dbf
-rw-r—– oracle/dba  1613824 2010-03-22 11:53:13 oradata/control01.ctl
-rw-r—– oracle/dba 209723392 2010-03-22 11:53:13 oradata/undotbs01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/users01.dbf
-rw-r—– oracle/dba 262152192 2010-03-22 11:53:13 oradata/system01.dbf
-rw-r—– oracle/dba   1613824 2010-03-22 11:53:13 oradata/control02.ctl
drwxrwxrwt root/root          0 2010-05-19 14:33:19 oradata/tmp/
…(省略)…
drwx—— root/root          0 2010-03-24 08:53:06 oradata/tmp/keyring-6MHcFc/
-rw-r—– oracle/dba  10493952 2010-03-22 11:53:13 oradata/tools01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/indx01.dbf
软连接指向的目录下的内容也全部被打包了,不再是一个连接

3、查看文档内容时,加v与不加v的区别

1 [root@oracle test]# tar -ztf oradata_h.tar.gz

oradata/
oradata/temp01.dbf
oradata/control01.ctl
oradata/undotbs01.dbf
oradata/users01.dbf
oradata/system01.dbf
oradata/control02.ctl
oradata/tmp/
oradata/tmp/VMwareDnD/
…(省略)…
oradata/tmp/keyring-6MHcFc/
oradata/tools01.dbf
oradata/indx01.dbf

1 [root@oracle test]# tar -ztvf oradata_h.tar.gz

drwxr-xr-x oracle/dba        0 2010-05-18 14:10:09 oradata/
-rw-r—– oracle/dba 41951232 2010-03-06 15:14:26 oradata/temp01.dbf
-rw-r—– oracle/dba  1613824 2010-03-22 11:53:13 oradata/control01.ctl
-rw-r—– oracle/dba 209723392 2010-03-22 11:53:13 oradata/undotbs01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/users01.dbf
-rw-r—– oracle/dba 262152192 2010-03-22 11:53:13 oradata/system01.dbf
-rw-r—– oracle/dba   1613824 2010-03-22 11:53:13 oradata/control02.ctl
drwxrwxrwt root/root          0 2010-05-19 13:59:17 oradata/tmp/
drwxrwxrwt root/root          0 2010-05-18 09:25:19 oradata/tmp/VMwareDnD/
…(省略)…
drwx—— root/root          0 2010-03-24 08:53:06 oradata/tmp/keyring-6MHcFc/
-rw-r—– oracle/dba  10493952 2010-03-22 11:53:13 oradata/tools01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/indx01.dbf
加v时,会显示出文档内容的详细信息。

4、归档时,加 –exclude 与不加的区别

1 [root@oracle ora9i]# tar  -zcvpf oradata.tar.gz oradata --exclude oradata/tmp
2 [root@oracle ora9i]# tar -ztvf oradata.tar.gz

drwxr-xr-x oracle/dba        0 2010-05-18 14:10:09 oradata/
-rw-r—– oracle/dba 41951232 2010-03-06 15:14:26 oradata/temp01.dbf
-rw-r—– oracle/dba  1613824 2010-03-22 11:53:13 oradata/control01.ctl
-rw-r—– oracle/dba 209723392 2010-03-22 11:53:13 oradata/undotbs01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/users01.dbf
-rw-r—– oracle/dba 262152192 2010-03-22 11:53:13 oradata/system01.dbf
-rw-r—– oracle/dba   1613824 2010-03-22 11:53:13 oradata/control02.ctl
-rw-r—– oracle/dba  10493952 2010-03-22 11:53:13 oradata/tools01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/indx01.dbf

1 [root@oracle ora9i]# tar  -zcvpf oradata_zcvpf.tar.gz oradata
2 [root@oracle ora9i]# tar -ztvf oradata_zcvpf.tar.gz

drwxr-xr-x oracle/dba        0 2010-05-18 14:10:09 oradata/
-rw-r—– oracle/dba 41951232 2010-03-06 15:14:26 oradata/temp01.dbf
-rw-r—– oracle/dba  1613824 2010-03-22 11:53:13 oradata/control01.ctl
-rw-r—– oracle/dba 209723392 2010-03-22 11:53:13 oradata/undotbs01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/users01.dbf
-rw-r—– oracle/dba 262152192 2010-03-22 11:53:13 oradata/system01.dbf
-rw-r—– oracle/dba   1613824 2010-03-22 11:53:13 oradata/control02.ctl
lrwxrwxrwx root/root          0 2010-05-18 14:10:09 oradata/tmp -> /tmp
-rw-r—– oracle/dba  10493952 2010-03-22 11:53:13 oradata/tools01.dbf
-rw-r—– oracle/dba  26222592 2010-03-22 11:53:13 oradata/indx01.dbf

分享到:
评论

相关推荐

    RH033Linux基础笔记九-文件系统和TAR的打包压缩介绍.pdf

    Linux 文件系统和 TAR 打包压缩介绍 Linux 文件系统是指计算机系统中的文件组织和存储方式。在 Linux 中,文件系统可以分为两种:硬链接和软链接。 硬链接(Hard Link)是一种文件链接方式,它是指多个文件名指向...

    小白的linux命令分享

    ln -s [源文件] [目标文件] 创建软连接(符号链接) inode-number 不相同 ln [源文件][目标文件]创建硬链接 inode-number 相同 tar -cf [打包文件名] [要打包的文件/列表] (c 创建打包文件 f 指定打包文件) tar -tf ...

    xshell常用命令.docx

    1.命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏...ln -s source_path target_path 软连接 24.命令touch——创建一个空文件 touch aaa.txt 创建一个空文件,文件名为aaa.txt

    UNIX教程网络篇(打包)

    11.10 tar档案文件 159 11.11 压缩文件 160 11.11.1 compress、uncompress和 zcat 160 11.11.2 gzip、gunzip和gzcat 161 11.11.3 zip和unzip 161 第12章 Archie和WAIS 164 12.1 Archie 164 12.1.1 Archie客户软件 ...

    UNIX高级编程 计算机科学丛书

    所有实例的源代码文件都可经Internet用匿名ftp取到,其主机站点是ftjp.uu.net,文件名是published/books/stevens.advprog.tar.Z。在你的机器上可对这些源代码进行修改并运行它们。 用于测试实例的系统 不幸的是所有...

    Linux基本命令的使用

    18. 进入/home目录,将文件abc1和abc2打包成文件ab.tar,放在以自己姓名命名的用户主目录下(比如/home/liqun),打开图形界面Nautilus的窗口观察执行后的结果。 19. 创建Readme.txt文本文件,内容为你的姓名全拼、...

    Linux常用的命令。。。。。

    ln –s file1 file2 为file1创建file3的软连接 ln –s file1(绝对路径) file2(绝对路径) 可以为file1 跨目录连接到file2 ln file1 file2 为file1创建file3 的硬连接 同时删除file1 和file2 才能删除文件 分发系统...

    r58_evb_sc5806v4加载TP成功修改config 20160815 2026.7z

    ):直接删除软连接的services4,然后拷贝过来链接源的services4,理论上应该也是可以的! 这样就不用每次都删除链接,然后再新建链接了!!!! rm ~/wyb/r58_evb_sc5806/lichee/linux-3.4/modules/eurasia_km/...

    单点登录源码

    - 一站式支付解决方案,统一下单接口,支持支付宝、微信、网银等多种支付方式。不涉及业务的纯粹的支付平台。 - 统一下单(统一下单接口、统一扫码)、订单管理、数据分析、财务报表、商户管理、渠道管理、对账系统...

    Java学习笔记-个人整理的

    {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {1.4.1}整数与浮点数}{23}{subsection.1.4.1} {1.4.1.1}浮点数原理}...

Global site tag (gtag.js) - Google Analytics