tar 命令
tar(英文全拼:tape archive )解压缩文件,支持 tar, tar.gz,tgz,bz2 等格式
语法
tar [选项...] [FILE]...
常用选项:
主操作模式:
-
-A, --catenate, --concatenate 追加 tar 文件至归档
-
-c, --create 创建一个新归档
-
-d, --diff, --compare 找出归档和文件系统的差异
--delete 从归档(非磁带!)中删除
-
-r, --append 追加文件至归档结尾
-
-t, --list 列出归档内容
--test-label 测试归档卷标并退出
-
-u, --update 仅追加比归档中副本更新的文件
-
-x, --extract, --get 从归档中解出文件,即解压
压缩选项:
-
-a, --auto-compress 使用归档后缀名来决定压缩程序
-
-I, --use-compress-program=PROG 通过 PROG 过滤(必须是能接受 -d 选项的程序)
-
-j, --bzip2 通过 bzip2 过滤归档
-
-J, --xz 通过 xz 过滤归档
--lzip 通过 lzip 过滤归档
--lzma 通过 lzma 过滤归档
--lzop
--no-auto-compress 不使用归档后缀名来决定压缩程序
-
-z, --gzip, --gunzip, --ungzip 通过 gzip 过滤归档
-
-Z, --compress, --uncompress 通过 compress 过滤归档
重写控制:
-
-k, --keep-old-files 提取时不要替换现有文件,将其视为错误
--keep-newer-files 不要替换比归档中副本更新的已存在的文件
--no-overwrite-dir 保留已存在目录的元数据
--overwrite 解压时重写存在的文件
--overwrite-dir 解压时重写已存在目录的元数据(默认)
--recursive-unlink 解压目录之前先清除目录层次
--remove-files 压缩完成后删除源文件
--skip-old-files 提取时不要替换现有文件,忽略它们
-
-U, --unlink-first 在解压要重写的文件之前先删除它们
-
-W, --verify 在写入以后尝试校验归档
本地文件选择:
-
--add-file=FILE 添加指定的 FILE 至归档(如果名字以 - 开始会很有用的)
-
--backup[=CONTROL] 在删除前备份,选择 CONTROL 版本
-
-C, --directory=DIR 改变至目录 DIR
-
--exclude=PATTERN 排除以 PATTERN 指定的文件
-
--exclude-tag=FILE 除 FILE 自身外,排除包含 FILE 的目录中的内容
-
--exclude-tag-all=FILE 排除包含 FILE 的目录
-
-f, --file=ARCHIVE 使用归档文件或 RCHIVE 设备,这个参数是最后一个参数,后面只能接档案名
-
-H, --format=FORMAT 创建指定格式的归档
实例
压缩文件
tar -cf all.tar *.jpg # 将当前目录下所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名
tar -czvf test.tar.gz /msg/log //压缩目录/msg/log为test.tar.gz gzip归档
压缩时排除文件, --exclude选项使用
语法: tar --exclude="File_to_exclude" [options] [archive_name] [path].
tar --exclude="tomcat/logs" -cvf tomcat
# 排除多个目录
tar --exclude="tomcat/logs" --exclude="tomcat/temp" -cvf tomcat
# 按通配符排除
tar --exclude="*.log" -cvf tomcat
可以使用文本文件结合--exclude-from选项实现排除多个文件或目录
制作一个文本文件,文件名任意,文件中每行记录一个要排除的文件名.示例:
建立一个文件excl.txt,内容如下:
tomcat/temp
tomcat/logs
tar --exclude-from="excl.txt" -cvf tomcat
追加或更新文件
#将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -rf all.tar *.gif
# 更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -uf all.tar logo.gif
列出压缩文件内容 -t
# tar -tzvf test.tar.gz
-rw-r--r-- root/root 0 2010-05-24 16:51:59 xx.log
解压文件
tar -xf all.tar
tar -xzvf test.tar.gz # gz文件需要 -z选项
tar -xjvf file.tar.bz2 //解压 tar.bz2