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




返回软件开发辅助网 | 常用命令列表

shell语法手册