Linux 命令(文件和目录管理 - tar)

简述

tar 命令用于将文件打包或解包,扩展名一般为 .tar,指定特定选项可以调用 gzip 或 bzip2 制作压缩包解开压缩包,扩展名为 .tar.gz 或 .tar.bz2。

  • 简述
  • 详细说明
  • 命令介绍
  • 命令选项
  • 使用范例

详细说明

打包和压缩的区别:

  • 打包:将一些文件或目录变成一个总文件
  • 压缩:将一个大的文件通过一些压缩算法变成一个小文件

tar 最初设计用于将文件打包到磁带上,现在大多使用它来实现备份某个分区或者某些重要的目录。

tar 是 Linux 中使用最广泛的命令,用于归档多个文件或目录到单个归档文件中,并且归档文件可以进一步使用 gzip 或者 bzip2 等技术进行压缩。换言之,tar 命令也可以用于备份:先是归档多个文件和目录到一个单独的 tar 文件或归档文件,然后在需要之时将 tar 文件中的文件和目录释放出来。

命令介绍

  • 命令名称
    tar
  • 命令全称
    Tape ARchive(磁带归档)
  • 基本语法
    tar [选项…] [FILE]…
  • 功能描述
    将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件。

命令选项

选项 说明
-c 建立新的压缩包
-d 比较存档与当前文件的不同之处
–delete 从压缩包中删除
-r 附加到压缩包结尾
-t 列出压缩包中文件的目录
-u 仅将较新的文件附加到压缩包中
-x 解压压缩包
-C 解压到指定的目录
-f 使用的压缩包名字,f 选项之后不能再加参数
-i 忽略存档中的 0 字节块
-v 处理过程中输出相关信息
-z 调用 gzip 来压缩归档文件,与 -x 联用时调用 gzip 完成解压缩
-Z 调用 compress 来压缩归档文件,与 -x 联用时调用 compress 完成解压缩
-j 调用 bzip2 压缩或解压
-p 使用原文件的原来属性
-P 可以使用绝对路径来压缩
–exclude 排除不加入压缩包的文件

使用范例

1.创建 tar 归档文件

# 仅打包,不压缩
[wang@localhost doc]$ tar -cvf debug.tar debug.log
debug.log
# 打包后,以 gzip 压缩
[wang@localhost doc]$ tar -zcvf debug.tar.gz debug.log
debug.log
# 打包后,以 bzip2 压缩
[wang@localhost doc]$ tar -jcvf debug.tar.bz2 debug.log
debug.log
[wang@localhost doc]$ ls -al debug*
-rw-rw-r--. 1 wang wang 368640 9月  30 16:23 debug.log
-rw-rw-r--. 1 wang wang 378880 9月  30 16:24 debug.tar
-rw-rw-r--. 1 wang wang   5000 9月  30 16:25 debug.tar.bz2
-rw-rw-r--. 1 wang wang   8401 9月  30 16:24 debug.tar.gz

2.列出归档文件中的内容

在 tar 命令中使用 –t 选项可以不用释放其中的文件,就可以快速列出文件中包含的内容。

[wang@localhost doc]$ tar -tvf debug.tar
-rw-rw-r-- wang/wang    368640 2016-09-30 16:23 debug.log

查看文件是否存在于 tar 文件中

# 由于 log 不存在,打印错误提示
[wang@localhost doc]$ tar -tvf debug.tar log
tar: log:归档中找不到
tar: 由于前次错误,将以上次的错误状态退出
# 存在 debug.log,则输出详细信息
[wang@localhost doc]$ tar -tvf debug.tar debug.log
-rw-rw-r-- wang/wang    368640 2016-09-30 16:23 debug.log

3.追加文件到归档(tar)文件中

选项 -r 用于向已有的 tar 文件中追加文件

# 压缩过的 tar 文件无法进行追加文件操作
[wang@localhost doc]$ tar -rvf debug.tar.gz python/hello.py
tar: 无法更新压缩归档文件
tar: Error is not recoverable: exiting now
[wang@localhost doc]$ tar -rvf debug.tar python/hello.py
python/hello.py
# 列出归档文件中的内容
[wang@localhost doc]$ tar -tvf debug.tar
-rw-rw-r-- wang/wang    368640 2016-09-30 16:23 debug.log
-rw-rw-r-- wang/wang        40 2016-09-29 11:06 python/hello.py

4.从 tar 文件中释放文件以及目录

选项 -x 用于释放出 tar 文件中的文件和目录,释放上面创建的 tar 文件中的内容。

[wang@localhost doc]$ tar -xvf debug.tar
debug.log
python/hello.py

假如想释放 tar 文件中的内容到指定的目录,使用 -C 选项后边加上指定的文件的路径。

[wang@localhost doc]$ tar -xvf debug.tar -C /tmp/
debug.log
python/hello.py

5.创建并压缩归档文件(.tar.gz 或 .tgz)

假设需要打包当前目录下的 php 和 linux 文件夹,并用 gzip 工具将其压缩。可以在 tar 命令中使用 -z 选项来实现。这种 tar 文件的扩展名可以是 .tar.gz 或者 .tgz。

[wang@localhost doc]$ tar -zcpvf myArchive.tar.gz php/ linux/
php/
php/hello.php
linux/
linux/hello.sh

6.创建并压缩归档文件(.tar.bz2 或 .tbz2)

假设需要打包当前目录下的 php 和 linux 文件夹,并使用 bzip2 压缩。可以在 tar 命令中使用 -j 选项来实现。这种 tar 文件的扩展名可以是 .tar.bz2 或者 .tbz。

[wang@localhost doc]$ tar -jcpvf myArchive.tar.bz2 php/ linux/
php/
php/hello.php
linux/
linux/hello.sh

7.解压 .tar.gz 或 .tgz 文件

使用 -x 和 -z 选项来解压 .tar.gz 或 .tgz 文件

[wang@localhost doc]$ tar -zxpvf myArchive.tar.gz -C /tmp/
php/
php/hello.php
linux/
linux/hello.sh

以上命令将 tar 文件解压到 /tmp 目录。

注意: tar 命令会在执行解压动作前自动检查文件的压缩类型,可以不用指定文件的压缩类型(可将 -zxpvf-xpvf 代替)。

8.解压 .tar.bz2 或 .tbz2 文件

使用 -j 和 -x 选项来解压 .tar.bz2 或 .tbz2 文件

[wang@localhost doc]$ tar -jxpvf myArchive.tar.bz2 -C /tmp/
php/
php/hello.php
linux/
linux/hello.sh
[wang@localhost doc]$ ls /tmp/

同上,可将 -jxpvf-xpvf 代替)

9.排除指定文件或类型后创建 tar 文件

创建 tar 文件时在 tar 命令中使用 –exclude 选项来排除指定文件或者类型。假设在创建压缩的 tar 文件时要排除 .php 文件。

[wang@localhost doc]$ tar -zcpvf myArchive.tar php/ linux/ --exclude=*.php
php/
linux/
linux/hello.sh

10.进行定时备份

有时需要对指定的文件和目录进行打包,已达到日常备份的目的。假设需要每天备份 php 目录,可以创建一个带 tar 命令的 cron 任务来完成。

[wang@localhost doc]$ tar -zcvf php-backup-$(date +%Y-%m-%d).tgz php/
php/
php/hello.php
[wang@localhost doc]$ ls -l php-*
-rw-rw-r--. 1 wang wang 238 9月  30 18:19 php-backup-2016-09-30.tgz

这些都是日常操作中经常用到的,关于其他用法,可以使用 man tar 或者 tar --help 来查询手册页。

时间: 2024-08-02 21:20:04

Linux 命令(文件和目录管理 - tar)的相关文章

RHCSA 系列(二): 如何进行文件和目录管理

在本篇中,我们将回顾一些系统管理员日常任务需要的技能. RHCSA: 运行文件以及进行文件夹管理 - 第二部分 创建.删除.复制和移动文件及目录 文件和目录管理是每一个系统管理员都应该掌握的必备技能.它包括了从头开始的创建.删除文本文件(每个程序的核心配置)以及目录(你用来组织文件和其它目录),以及识别已有文件的类型. touch 命令 不仅仅能用来创建空文件,还能用来更新已有文件的访问时间和修改时间. touch 命令示例 你可以使用 file [filename]来判断一个文件的类型 (在你

linux 命令每天必学之tar命令_linux shell

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案.利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便

linux下文件和目录的颜色所代表含义是什么?

linux下文件和目录的颜色所代表含义是什么? 蓝色表示目录:绿色表示可执行文件:红色表示压缩文件:浅蓝色表示链接文件:灰色表示其它文件:红色闪烁表示链接的文件有问题了:黄色是设备文件,包括block, char, fifo.用dircolors -p看到缺省的颜色设置,包括各种颜色和"粗体",下划线,闪烁等定义 [root@localhost ~]# dircolors -p #&http://www.aliyun.com/zixun/aggregation/37954.ht

SQL Server on Linux的文件和目录结构

问题引入 "鸟儿啊,我记得你写过一篇<SQLServer On Linux Package List on CentOS>的文章,从这篇文章,我们很清楚的知道了SQL Server on Linux包含有哪些必要的包.那么,我们怎么知道SQL Server on Linux到底包含哪些重要的文件和目录结构呢?他们的作用是什么?". "的确,当我们在排错或者需要改变MSSQL Server on Linux配置的时候,我们需要对SQL Server的各个工作目录和文

详解Java的文件与目录管理以及输入输出相关操作_java

Java中文件与目录管理 目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息.通过调用 File 类提供的各种方法,能够创建.删除.重名名文件.判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间等.不同操作系统具有不同的文件系统组织方式,通过使用 File 类对象,

Linux中文件权限目录权限的意义及权限对文件目录的意义_linux shell

linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括增加删除文件的具体内容: x:文件就具有了可执行的权限-------注意:这里和window不一样,在win中,文件的可执行权限是通过扩展名表现出来的,如exe.bat等,但是在linux中文件的可执行权限是通过这个x决定的,与文件名没有什么关系. 二.目录权限的意义 r:可以查看此目录下的完整文件列表信息. w:可以对此目录下的所有的文件及目录进行相关的更改,也就是可以更改这个

Linux 命令(文件和目录管理 - pwd)

简述 目录是 Linux 的基本组成部分,目录管理包括目录的复制.删除.修改等操操作. 在 Linux 层次结构中,想要知道当前所处的目录,可以用 pwd 命令,该命令输出当前工作目录的完整名称.环境变量 OLDPWD 表示前一次的工作目录,环境变量 PWD 表示当前的工作目录. 简述 命令介绍 命令选项 使用范例 命令介绍 命令名称 pwd 命令全称 Print Working Directory 基本语法 pwd [选项]- 功能描述 打印当前工作目录的完整文件名 命令选项 pwd 命令比较

Linux 命令(文件和目录管理 - zip/unzip)

简述 zip/unzip 是 Linux 中广泛使用的压缩/解压缩程序zip 命令用来将文件压缩为常用的 zip 格式扩展名为 .zipunzip 命令则用来解压缩 zip 文件. 简述 zip 命令介绍 命令选项 使用范例 unzip 命令介绍 命令选项 使用范例 zip 命令介绍 命令名称 zip 基本语法 zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [--longoption ...] [-b path] [-n suffixes] [-t date]

Linux 命令(文件和目录管理 - gzip/gunzip)

简述 和 zip 命令类似,gzip 用于文件的压缩,gzip 压缩后的文件扩展名位 .gz,gzip 默认压缩后会删除原文件.gunzip 用于解压经过 gzip 压缩过的文件. 简述 gzip 命令介绍 命令选项 使用范例 gunzip 命令介绍 命令选项 使用范例 gzip 命令介绍 命令名称 gzip 基本语法 gzip [OPTION]- [FILE]- 功能描述 压缩文件.压缩后的文件扩展名位 .gz,默认压缩后会删除原文件. 命令选项 选项 说明 -a --ascii 使用 ASC