Tar 命令经常用但是它的各种参数又总是记不住,因此彻底梳理了一下,再也不会忘记。
Tar 是 Linux 中的(压缩)归档工具。
归档的意思与打包相同,就是把文件或目录或者多个文件和目录打包为一个文件,以便于传输。通常打包过程中会进行压缩操作,所以tar也附带了压缩的选项。压缩后的文件更小,以便于网络传输,减少等待时间。
选项1
tar 的第一个选项参数必须是下列(Acdrtux)之一:
-c, –create
创建一个新的归档
-x, –extract
从归档中提取文件
-t, –list
列出归档内容
选项2
-C, –directory DIR
改变目录为DIR
-f, –file ARCHIVE
使用归档文件
-j, –bzip2
处理 .bz2 文件(压缩/解压缩)
-J, –xz
处理 .xz 文件(压缩/解压缩)
-O, –to-stdout
提取文件到标准输出(通常是显示器)
-v, –verbose
详细列出每个文件的处理情况
-z, –gzip, –ungzip
处理 .zip 文件(压缩/解压缩)
示例
从文件foo和bar创建归档archive.tar
tar -cf archive.tar foo bar
-c 创建新的归档文件
-f ARCHIVE 使用归档文件
从目录/home/demo/创建归档demo.tar
tar -cf demo.tar /home/demo/
-c 创建新的归档文件
-f ARCHIVE 使用归档文件
如果想看到每个文件的处理过程,那么可以加上 -v 选项。
详细列出archive.tar中的所有文件
tar -tvf archive.tar
-t 列出归档内容
-v 显示文件详细信息
-f ARCHIVE 使用归档文件
提取archive.tar中的所有文件
tar -xf archive.tar
-x 提取归档文件
-f ARCHIVE 使用归档文件
如果想看到每个文件的处理过程,那么可以加上 -v 选项。
【最常用】从目录/home/demo/创建gzip压缩归档demo.tar.gz
tar -czf demo.tar.gz /home/demo/
-c 创建新的归档文件
-z 处理zip压缩
-f ARCHIVE 使用归档文件
如果想看到每个文件的处理过程,那么可以加上 -v 选项。
从多个目录/home/demo1 /home/demo2和文件hi.txt创建gzip压缩归档demo.tar.gz
tar -czf demo.tar.gz /home/demo1 /home/demo2 hi.txt
-c 创建新的归档文件
-z 处理zip压缩
-f ARCHIVE 使用归档文件
如果想看到每个文件的处理过程,那么可以加上 -v 选项。
从目录/home/demo创建bzip2压缩归档demo.tar.bz2
tar -cjf demo.tar.gz /home/demo
-c 创建新的归档文件
-j 处理bzip2压缩文件
-f ARCHIVE 使用归档文件
如果想看到每个文件的处理过程,那么可以加上 -v 选项。
bzip2比gzip压缩文件更小,但压缩时间变长了
【最常用】提取gzip压缩归档test.tar.gz的内容到指定目录/home/demo/中
tar -xzf test.tar.gz -C /home/demo/
-x 提取归档内容
-z 处理gzip压缩文件
-f ARCHIVE 使用归档文件
-C DIR:改变目录到DIR
提取bzip2压缩归档test.tar.bz2的内容到指定目录/home/demo/中
tar -xjf test.tar.bz2 -C /home/demo/
-x 提取归档内容
-j 处理bzip2压缩文件
-f ARCHIVE 使用归档文件
-C DIR:改变目录到DIR
提取xz压缩归档test.tar.xz的内容到指定目录/home/demo/中
tar -xJf test.tar.xz -C /home/demo/
-x 提取归档内容
-J 处理xz压缩文件
-f ARCHIVE 使用归档文件
-C DIR:改变目录到DIR
FAQs
tar: Removing leading `/’ from member names
其原因是tar默认为相对路径,使用绝对路径的话就回报这个错,可以使用-P参数(注意大写)解决这个问题
$ tar -zcPf /backup/$WebBakName $WEB_DATA