如何使用tar对整tar打包多个文件夹夹打包

&&&&&&&&&&&&&&&&&&
posts - 535,comments - 391,trackbacks - 0
留言簿(31)
随笔分类(625)
朋友的博客
积分与排名
阅读排行榜
评论排行榜
用tar打包时排除文件:可以使用-exclude参数如: tar cvfz& backup_1.tar.gz& /opt/data& -exclude=resource*在打包/opt/data时就排除了resource命名的目录和文件。如果想不包含部分的特定文件列表,可以把不包含的文件放到一个文件ext.txt然后 tar cvfz& backup_1.tar.gz&& -exclude=resource*& -X ext.txt& /opt/data就可以了。我的ext.txt文件内容如下:$ cat /tmp/ext.txt /opt/data/devs/locks/db-logs.lock/opt/data/devs/locks/db.lock/opt/data/devs/hooks/post-revprop-change.tmpl/opt/data/devs/hooks/pre-lock.tmpl/opt/data/devs/hooks/post-unlock.tmpl/opt/data/devs/db/transactions/opt/data/devs/db/txn-current-lock/opt/data/devs/db/write-lock/opt/data/devs/db/format/opt/data/devs/conf/passwd这样就可以在打包的时候不包含以上的文件或者目录。|----------------------------------------------------------------------------------------|
& &&&&&&&&&&&&&&&&&&&&&&&& 版权声明& 版权所有 @zhyiwww
&&&&&&&&&&& 引用请注明来源 http://www.blogjava.net/zhyiwww &&
|----------------------------------------------------------------------------------------|
阅读(7137)28744人阅读
linux zip压缩。压缩当前文件夹下所有文件,压缩为a.zip。命令行的方法是怎样。
zip &-r fileName.zip &文件夹名
tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。
常用格式:
单个文件压缩打包 tar czvf my.tar file1
多个文件压缩打包 tar czvf my.tar file1 file2,...
单个目录压缩打包 tar czvf my.tar dir1
多个目录压缩打包 tar czvf my.tar dir1 dir2
解包至当前目录:tar xzvf my.tar
含子目录find x* | cpio -o & /y/z.cpio
不含子目录ls x* | cpio -o & /y/z.cpio
解包: cpio -i & /y/z.cpio
[root@linux ~]# tar [-cxtzjvfpPN]&与目录 ....
-c :建立一个压缩文件的参数指令(create 的意思);
-x :解开一个压缩文件的参数指令!
-t :查看 tarfile 里面的文件!
特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!
因为不可能同时压缩与解压缩。
-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
   例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成
   『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc &==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc &==打包后,以 gzip 压缩
[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 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,
# 就得要加上 z 这个参数了!这很重要的!
范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[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 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
范例六:在 /home 当中,比
新的文件才备份
[root@linux ~]# tar -N '' -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
# 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
# 这分别代表 standard output, standard input 与管线命令啦!
# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:523961次
积分:6091
积分:6091
排名:第1842名
原创:42篇
转载:428篇
评论:76条
(1)(1)(3)(2)(1)(3)(8)(2)(2)(3)(2)(4)(16)(6)(1)(4)(5)(7)(3)(1)(1)(5)(5)(2)(1)(21)(5)(19)(30)(1)(4)(11)(8)(25)(4)(10)(65)(40)(43)(6)(10)(3)(18)(7)(30)(21)用tar打包转移系统 - 查看主题 & Ubuntu中文论坛
&[ 24 篇帖子 ]&
&文章标题 : 用tar打包转移系统发表于 :
9:32帖子: 1233
系统: linux
用tar打包转移系统其实很简单,高手请绕行。
我的电脑有两块硬盘,一块装了xp给家人用,另一块装了ubuntu(8.10升9.04)和arch(只用了一个区,swap共用)给自己用。有一天心血来潮把arch分区的格式改成了ext4,结果用ubuntu的grub无法启动arch,只能用grub4dos来启动arch。查了一下原因,应该是arch所在分区处于硬盘最后部分,启动时超出查找范围。一开始这个区被分为sdb8,安arch的时候就无法正常启动,当时把它的分区从逻辑分区改成了主分区(成为了sdb3),然后就可以正常启动了,这次改了格式又出现了这个问题,而且即便是用arch自己的grub也无法启动,令人稍有不快。同时由于当初为ubuntu的boot也分了区,在硬盘起始位置。现在很想把硬盘分区从新规划一下。刚好ubuntu-9.04rc出来了,就想付诸行动。
初步打算重新分区后,把ubuntu重装,因为它比较好配置,只需要把home下的用户家目录备份一下就行了;比较麻烦的是arch,本来配置的好好的,不想再折腾一下,而且有时候网络不稳定,重装arch有时候是很费时间的事。怎么办?用cpio、dd还是tar?
用cpio太占地方,而且由于分区还没分好,不能直接拷贝;用dd只能源文件分区比目标分区大,而我从新规划的分区大小都比arch目前的分区小那么一点点。看来tar是个不错的选择,用它把arch系统打包然后暂存在另一块硬盘上,等sdb硬盘从新分好区后,再解压到新选择的分区,修改menu.lst和fstab中的相关信息,就可以用grub或者grub4dos来引导启动了。这种方法在节省空间的同时,还不依赖于文件系统格式,你可以选用新的文件系统格式,比如ext4。当然,这需要另一个linux系统,你可以用livecd的linux来操作,我是直接用ubuntu-9.04rc的iso镜像刻录入u盘,制作了一个u盘启动的livecd来操作的。你要有自己刻录的光盘版的livecd也可以啊。下面进入正题。其实只是注意事项的提醒而已。以下操作都是在livecd系统启动电脑下进行的。1、tar打包,解压时会自动按打包时的路径还原,即便是加-C指定路径,依然会在该路径下建立打包时的路径还原。
如果在本系统进行打包及还原,一般不会产生问题。比如 tar -zcvpf bird.tar.gz /home/bird
你在别的linux系统下还原时,它依旧解压为/home/bird,如果你加-C指定路径,比如 tar -zxvpf bird.tar.gz -C /mnt 结果就是 /mnt/home/bird。(这是介绍tar打包特性,不是具体操作)。2、如果准备在一个系统打包而在别的系统进行还原的话,有时候就会有麻烦,即便是指定路径。还原时多出路径怎么办?
比如备份sdb3的arch系统,怎么办比较好呢,先把sdb3挂载到/media/arch,代码:sudo mount /dev/sdb3 /media/arch然后 cd /media/arch,然后用相对路径打包代码:cd /media/arch代码:sudo tar -zcvpf (保存路径)arch.tar.gz ./
用这个办法打包,解压时,要么cd到需要解压的目录,然后sudo tar -zxvpf (保存路径)arch.tar.gz进行解压,要么用-C指定路径,都可以。比如代码:sudo tar -zxvpf (所在路径)arch.tar.gz -C /media/arch/
这样貌似麻烦,但比较灵活,可以比较自如的变换解压后的文件路径。3、如果打包时用的是绝对路径,如上例子的情况: 代码:sudo tar -zcvpf (保存路径)arch.tar.gz /media/arch/ ,还原时就需要把新选用的分区依旧挂载在/media/arch路径上,直接代码:sudo tar -zxvpf (保存路径)arch.tar.gz就可以了。4、需注意,要用参数-p来确保文件权限属性,而且需要管理员权限来操作,否则有些文件会拒绝被读取打包。
这是一点心得,给新手做个参考,少走些弯路。现在偶已经畅快地用上了arch和ubuntu-9.04rc,文件系统格式全换成了ext4,swap扩大成3G,把原来独立的ubuntu的boot分区取消了。arch也能完全自主独立的启动了,不再出现超过寻址范围的启动问题了。
用这个方法,原来4.5G的arch系统,打包压缩后只占了1.7G,还原后,一切如常,仿佛没有移动过。
14:00,总共编辑了 2 次
&文章标题 : Re: 用tar打包转移系统发表于 :
13:44帖子: 2337地址: 东8区
送出感谢: 0 次
接收感谢: 0 次
_________________代码:&& & & &\& &,__,& & & & \& (oo)____& & & & & &(__)& & )\& & & & & & & ||--|| *& &
&文章标题 : Re: 用tar打包转移系统发表于 :
23:44帖子: 87
送出感谢: 0 次
接收感谢: 0 次
我原来做备份的时候也是搞的头昏脑胀的哈哈支持!
&文章标题 : Re: 用tar打包转移系统发表于 :
21:55帖子: 58438地址: 长沙
_________________● 鸣学
&文章标题 : Re: 用tar打包转移系统发表于 :
9:41帖子: 8457
送出感谢: 0 次
接收感谢: 0 次
不错,有细节,支持一下
&文章标题 : Re: 用tar打包转移系统发表于 :
13:24帖子: 193
送出感谢: 0 次
接收感谢: 0 次
不错,支持了,路径问题还是很麻烦的
&文章标题 : Re: 用tar打包转移系统发表于 :
16:03帖子: 817
送出感谢: 0 次
接收感谢: 0 次
这个要留名 ,本人到此一游,以便日后重游
_________________HP ProBook4321s,I3+ATIOS : Fedora + Debian
&文章标题 : Re: 用tar打包转移系统发表于 :
2:22帖子: 446
送出感谢: 0 次
接收感谢: 0 次
_________________人之所以痛苦,那是因为你还不够强大
&文章标题 : Re: 用tar打包转移系统发表于 :
19:39帖子: 13243地址: 物华天宝人杰地灵
送出感谢: 0 次
写得比较详细,不过本人现在向广大需要备份系统的兄弟们推荐论坛两位老大的好东西。
的图形化界面备份工具。的备份脚本工具。
_________________行到水穷处,坐看云起时。海内生明月,天涯共此夕。--------------------吾本独!
&文章标题 : Re: 用tar打包转移系统发表于 :
16:45帖子: 2319地址: 阿拉斯加群岛其中的一个岛上一片原始森林里其中的一颗树上
送出感谢: 0 次
接收感谢: 0 次
我把硬盘格式化一遍,再恢复,好像没用。正重装呢。
_________________AMD 速龙 x4 630GIGABYTE MA785GT-UD3H金士顿 骇客神条 DDR3 1666 2G (这个内存我最肉疼,390元。)VIEWSONIC 2433ssh -qTfnN -D 7070
&文章标题 : Re: 用tar打包转移系统发表于 :
9:32帖子: 1233
系统: linux
bjsm 写道:我把硬盘格式化一遍,再恢复,好像没用。正重装呢。 最近把ubuntu删了,从新规划了硬盘,用这个办法把arch转移成主系统,准备安心用arch64,不再心猿意马了。
&文章标题 : Re: 用tar打包转移系统发表于 :
21:19帖子: 12
送出感谢: 0 次
接收感谢: 0 次
多谢指教!!!
&文章标题 : Re: 用tar打包转移系统发表于 :
3:09帖子: 5761地址: GDUFS-GD-PRC
送出感谢: 0 次
看时间和源的速度了...有时打包还不如重装快...
_________________HUNT Unfortunately No Talent...
&文章标题 : Re: 用tar打包转移系统发表于 :
20:45帖子: 148地址: Shanghai&Beijing
送出感谢: 0 次
接收感谢: 0 次
是的,我把var单独分了一个区,软件包都在。。so。。HuntXu 写道:看时间和源的速度了...有时打包还不如重装快...
&文章标题 : Re: 用tar打包转移系统发表于 :
0:09帖子: 4
送出感谢: 0 次
接收感谢: 0 次
不错的文章。。我对那个路径的讲解还没理解能否帮我一下。
显示帖子 : 全部帖子1天7天2周1个月3个月6个月1年&排序 作者发表时间文章标题 升序降序&
&[ 24 篇帖子 ]&
正在浏览此版面的用户:没有注册用户 和 1 位游客
您 不能 在这个版面发表主题您 不能 在这个版面回复主题您 不能 在这个版面编辑帖子您 不能 在这个版面删除帖子您 不能 在这个版面提交附件
选择一个版面
------------------
公告/注意事项
& &新闻和通知
& &校园社团支持
& && &华东校区
& && &华南校区
& && &华北校区
& && &华中校区
& && &东北校区
& && &西北校区
& && &港澳台校区
& && &国外校区
& &软件推荐
& &非常任务
系统安装区
& &教学和常见问答
& && &课堂教学和培训
& &初学者园地 - 15.04
& &系统安装和升级
& && &新立得和软件源
& && &Wubi安装讨论
& &启动和引导
& &网卡问题以及网络和拨号
& && &校园网拨号
& &笔记本、UMPC支持
& &手机和平板
& && &Ubuntu移动应用开发
& &常用硬件支持
& &系统架构支持
配置美化区
& &字体美化和中文支持
& && &个人配置文件存放点
& &桌面特效
& &窗口管理器
& &屏幕抓图
& &办公、图像、机械电子设计等
& && &Vim和Emacs
& &因特网相关软件
& &影音多媒体
& &Wine及其分支
& &游戏和游戏模拟器
& &虚拟机和虚拟化
& &其它类软件
服务器管理
& &服务器基础应用
& &数据库管理
& &服务器维护和硬件相关
& &Ubuntu VPS
参与Ubuntu开发
& &软件和文档翻译
& &编译或打包
& &Ubuntu错误报告
程序设计区
& &Shell脚本
& &GTK+和QT
& &软件/网站开发
& && &Python/Php/Perl
& && &C/C++/Java
& &内核及嵌入式开发
& &开源小工具
& &Ubuntu 15.10
& &Ubuntu 14.10
& &Ubuntu 14.04 LTS
& &Ubuntu 12.04 LTS
& &Ubuntu 10.04 LTS
& &老旧版本支持
衍生发行版
& &Ubuntu GNOME
& &Kubuntu
& &Xubuntu & Lubuntu
& &Ubuntu中文衍生版
& && &Deepin
& && &UbuntuKylin
& &Ubuntu国外衍生版
& && &Mint
& &Ubuntu衍生版制作
& &其它类Unix OS发行版
& && &Arch发行版
& && &Debian发行版
& && &OpenSUSE发行版
& &深度PK版
& &Ubuntu故事和感慨
& &Full Circle开源杂志
分享交流区
& &同城交流
& &线下活动专版
& &Ubuntu宣传推广
& &论坛管理
& && && &Ubuntu中文网上商店tar打包时如何去掉一个特定的文件夹?--章志国
可以使用如下方法进行打包mkdir /tmp/mytempcp `find /home/test/ -path /home/test/dir1 -prune -o -print` /tmp/mytemptar -zcvf&&test.tar.gz /tmp/mytemp/*find /home/test -path /home/test/dir1 -prune -o -print 就是查找 test目录下除了dir1目录的所有文件!cp `find /home/test/ -path /home/test/dir1 -prune -o -print` /tmp/mytemp 就是把这些文件都copy到/tmp/mytemp目录下,再对其进行打包!另外,在这里问两个疑问,希望有人可以帮我解答一下,谢谢:开始的时候我使用如下命令打包:find /home/test/ -paht /home/test/dir1 -prune -o -print|xargs tar zcvf&&test.tar.gz但是一样会把/home/test/dir1目录打包进去,请问为什么呢?有什么方法可以避免这样?请高手解答一下!还有一个就是用上面的方法打包 cp `find /home/test/ -path /home/test/dir1 -prune -o -print` /tmp/mytemp 把/home/test/ 的文件都copy到/tmp/mytemp下,/tmp/mytemp下就没有原来/home/test/目录的结构!请问那用什么方法可以保持原来的目录结构呢?^_^!!整理一下:该问题答案为:find /.../test -path /.../test/dir1 -prune -o -print |xargs tar zcvf&&test.tar.gz --exclude
| &标签:&上一篇:下一篇:
我也连带被表扬了,呵呵~~, 不过你做的对,他做的不好还是直接指出来比说一些的责备的话对他更有用
是我们今生最大的债主
都无法偿还
| &发表评论:

我要回帖

更多关于 tar 打包整个目录 的文章

 

随机推荐