Linux命令(12)---tar
2016-08-30 23:15
465 查看
tar命令
tar命令,打包,可以为linux的文件和目录创建档案。可将多个目录或文件打包成一个大文件,同时还可以通过gzip/bzip2的支持,将该文件同时压缩。打包与压缩的概念:
打包:是指将一堆文件或目录变成一个总的文件。
压缩:是指将一个大的文件通过压缩算法变成一个小文件。
用法:
tar [OPTION...] [FILE]...
tar命令的常用选项:
打包的常用命令组合:zcvf-z, –gzip
filter the archive through gzip
调用gzip来压缩归档文件,此时文件名最好为*.tar.gz
-j,–bzip2
filter archive through bzip2
调用bzip2来压缩归档文件,此时文件名最好为*.tar.bz2
-c, –create
create a new archive
创建新的归档文件
-v, –verbose
verbosely list files processed
在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f, –file=ARCHIVE
use archive file or device ARCHIVE
查看压缩包内容的组合:tf
-t, –list
list the contents of an archive
查看压缩包的内容列表
-f, –file=ARCHIVE
use archive file or device ARCHIVE
解包的常用命令组合:zxvf或者xf
-z,–gzip
通过gzip的支持进行解压缩
-j,–bzip2
通过bzip2的支持进行解压缩
-x,–extract,–get
xtract files from an archive 从归档文件中解出文件 。解打包或解压缩功能。
-C,–directory DIR
change to directory DIR 指定目录进行操作,如解压到指定目录
–exclude PATTERN
exclude files based upon PATTERN 排除不需要处理的文件或目录
-X,–exclude-from FILE
exclude files listed in FILE
指定文件列表的形式排除不需要处理的文件或目录
补充:
-p, –preserve-permissions, –same-permissions
extract information about file permissions
保持文件属性
-P, –absolute-names
don’t strip leading ‘/’s from file names
打包带上”/”(很危险不要用)
tar: Removing leading `/’ from member names
去掉根目录是为了安全。我们使用的tar备份的数据可能会需要解压缩回来使用。如果去掉了根目录,假设将备份数据在/tmp中解开,那么解压缩的文件名就会变成/tmp/etc/xxx。但是如果没有去掉根目录,解压缩后的文件名就会是绝对路径,即解压缩后的数据一定会被放置到/etc/xxx去。如此一来,原来的/etc/下面的数据就会被备份数据所覆盖过去了。
关于P的实例:
[root@ianLinux ~]# tar zcvPf a.tar.gz /root/data/
[root@ianLinux ~]# tar zcvf ab.tar.gz /root/data/
a.tar.gz是加了P参数打包的,ab.tar.gz没有加
打包前与打包结束时tarPTest.txt文件的内容,即a.tar.gz包里tarPTest.txt文件的内容
[root@ianLinux ~]# cat ./data/tarPTest.txt 1111
打包后,修改tarPTest.txt文件的内容
[root@ianLinux ~]# echo "2222" >> ./data/tarPTest.txt
[root@ianLinux ~]# cat ./data/tarPTest.txt 1111
2222
现在将a.tar.gz带上P参数解包
[root@ianLinux ~]# tar zxvPf a.tar.gz /root/data/ /root/data/iantest2.txt /root/data/greptest.txt /root/data/iantest1.txt /root/data/tarPTest.txt
此时查看./data/tarPTest.txt 里的内容,发现被带备份数据覆盖了
[root@ianLinux ~]# cat ./data/tarPTest.txt 1111
使用两种打包方式
#使用gz打包命令 [root@ianLinux ~]# tar zcvf tarTest.tar.gz ./data ./data/ ./data/iantest2.txt ./data/greptest.txt ./data/iantest1.txt ./data/tarPTest.txt #使用bz打包命令 [root@ianLinux ~]# tar jcvf tarTest1.tar.bz ./data ./data/ ./data/iantest2.txt ./data/greptest.txt ./data/iantest1.txt ./data/tarPTest.txt
解压也要使用与打包对应的解压缩方式
错误:
方式不对无法解压
正确:
也可以不指定方式,直接用tar xf…..
相关文章推荐
- linux命令详解——tar
- linux命令详解——tar
- Linux命令(009) -- tar
- Linux命令(2)---tar命令的使用
- linux命令(12):ping命令
- linux命令中tar后的zxvf分别表示含义
- linux命令-tar
- Linux命令-tar
- linux命令:tar
- Linux命令(30):tar命令-归档工具
- Linux命令(cd、tar)
- linux命令(12):more命令
- Linux命令(19)——tar命令
- Linux命令(12):nl
- Linux命令:tar
- 每日一linux命令(27)-------tar命令
- 1-12tar归档 文件并在系统间复制文件
- linux命令-tar工具详解
- 一天一linux命令(12) which whereis locate find 查找文件和目录
- linux命令-tar