首页 存档 技术 查看内容

Linux Shell 常用技巧--tar命令

2018-3-30 13:00 |来自: 互联网 594 0

摘要: tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令。tar是Unix/Linux系统中备份文件的可靠方法。 1. tar命令行选项 选项 命令描述 -c 建立压缩档案 -x 解压 --delete 从压缩包中 ...

tar(磁带归档)命令是linux系统中被经常用来将文件存入到一个归档文件中的命令。tar是Unix/Linux系统中备份文件的可靠方法。

1. tar命令行选项

选项 命令描述
-c 建立压缩档案
-x 解压
--delete 从压缩包中删除已有文件,如果该文件在包中出现多次,该操作将其全部删除。
-t 查看压缩包中的文件列表
-r 向压缩归档文件末尾追加文件
-u 更新原压缩包中的文件
-z 压缩为gzip格式,或以gzip格式解压
-j 压缩为bzip2格式,或以bzip2格式解压
-v 显示压缩或解压的过程,该选项一般不适于后台操作
-f 使用档案名字,这个参数是最后一个参数,后面只能接档案名。



2.范例:


1.解压一个tar.gz归档

$ tar -xvzf tarfile.tar.gz

参数简单说明:

x - 解压文件

v - 冗长模式,在解压每个文件时打印出文件的名称。

z - 该文件是一个使用 gzip 压缩的文件。

f - 使用接下来的tar归档来进行操作。

解压 tar.bz2/bzip 归档文件(将z换成j)
$ tar -xvjf archivefile.tar.bz2



2.将文件解压到一个指定的目录或路径

为了将文件解压到一个指定的目录中,使用“-C”选项来指定路径。(注:确保解压目录存在,
否则解压将失败)
$ tar -xvzf abc.tar.gz -C /opt/folder/


3. 提取出单个文件

为了从一个归档文件中提取出单个文件,只需要将文件名按照以下方式将其放置在命令后面。

$ tar -xz -f abc.tar.gz "./new/abc.txt"

提取多个:

$ tar -xz -f abc.tar.gz "./new/cde.txt" "./new/abc.txt"


4.使用通配符来解压多个文件

通配符可以用来解压于给定通配符匹配的一批文件,例如所有以".txt"作为扩展名的文件。

$ tar -xz -f abc.tar.gz --wildcards "*.txt"


5. 列出并检索tar归档文件中的内容

如果你仅仅想要列出而不是解压tar归档文件的中的内容,使用“-t”(test)选项,
下面的命令用来打印一个使用gzip压缩过的tar归档文件中的内容。

$ tar -tz -f abc.tar.gz

./new/

./new/cde.txt

./new/subdir/

./new/subdir/in.txt

./new/abc.txt

...
可以将输出通过管道定向到grep来搜索一个文件,或者定向到less命令来浏览内容列表。
使用"v"冗长选项将会打印出每个文件的额外详细信息。

6.创建一个tar/tar.gz归档文件

下面的命令使用一个目录来创建一个tar归档文件,它会将该目录中所有的文件和子目录都加入
到归档文件中。

$ tar -cvf abc.tar ./new/

./new/

./new/cde.txt

./new/abc.txt

上述命令不会创建一个压缩的的归档文件,只是一个普通的归档文件,只是将多个文件放入到一
个归档文件中并没有真正地压缩每个文件。为了使用压缩,可以分别使用“z”或“j”选项进行
gzip或bzip压缩算法。


文件的扩展名其实并不真正有什么影响。“tar.gz” 和“tgz”是gzip压缩算法压缩文件的常见
扩展名。 “tar.bz2”和“tbz”是bzip压缩算法压缩文件的常见扩展名(LCTT 注:归档是否
是压缩的和采用哪种压缩方式并不取决于其扩展名,扩展名只是为了便于辨识)。

7. 在添加文件之前进行确认

一个有用的选项是“w”,该选项使得tar命令在添加每个文件到归档文件之前来让用户进行确认,
有时候这会很有用。使用该选项时,只有用户输入“y”时的文件才会被加入到归档文件中,如果
你不输入任何东西,其默认表示是一个“n”。
# 添加指定文件
$ tar -czw -f abc.tar.gz ./new/*
add ‘./new/abc.txt’?y
add ‘./new/cde.txt’?y
add ‘./new/newfile.txt’?n
add ‘./new/subdir’?y
add ‘./new/subdir/in.txt’?n
#现在列出所有被加入的文件
$ tar -t -f abc.tar.gz
./new/abc.txt
./new/cde.txt
./new/subdir/

8. 加入文件到存在的归档文件中

“r”选项可以被用来将文件加入到已存在的归档文件中,而不用创建一个新的归档文件。

$ tar -rv -f abc.tar abc.txt
文件并不能加入到已压缩的归档文件中(gz 或 bzip)。文件只能被加入到普通的归档文件中。


9.将文件加入到压缩的归档文件中(tar.gz/tar.bz2)

之前已经提到了不可能将文件加入到已压缩的归档文件中,然而依然可以通过简单的一些把戏
来完成。使用gunzip命令来解压缩归档文件,然后将文件加入到归档文件中后重新进行压缩。

$ gunzip archive.tar.gz

$ tar -rf archive.tar ./path/to/file

$ gzip archive.tar

10.通过tar来进行备份
在固定的时间间隔内来备份目录,tar命令可以通过cron调度来实现这样的一个备份

$ tar -cvz -f archive-$(date %Y%m%d).tar.gz ./new/

小结
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 解压

ps:吐槽~~~ 微信排版不好用,编辑代码木有高亮,。

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部