首页 > 系统相关 >Linux命令篇 - tar 命令

Linux命令篇 - tar 命令

时间:2023-02-13 01:11:21浏览次数:48  
标签:解压 文件 bz2 tar 压缩 gz 命令 Linux

tar

GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.

tar:用于压缩和解压缩文件;

格式:tar [OPTION...] [FILE]...

# tar命令常用的功能
# 以下功能是独立的, 一次只能使用一个
- -c: 创建新的tar文件;
- -x: 解开tar文件;
- -t: 列出tar文件中含的文件的信息;
- -r: 附加新的文件到tar文件中;

# tar命令常用的参数
- -z: 使用gzip进行解压缩
- -j: 使用bzip2进行解压缩
- -Z: 使用compress进行解压缩
- -v: 显示解压缩执行过程
- -f: 指定要处理的文件名

# 压缩
- tar -cvf xxx.tar /data  # 仅对 data 目录打包不进行压缩
- tar -zcvf xxx.tar /data # 对 data 目录打包并以 tar.gz 方式压缩
- tar -jcvf xxx.tar /data # 对 data 目录打包并以 tar.bz2 方式压缩

# 解压
- tar -xvf xxx.tar # 解包
- tar -zxvf xxx.tar.gz # 解压 tar.gz 格式压缩包
- tar -jxvf xxx.tar.bz2 # 解压 tar.bz2 格式压缩包
- tat -zxvf xxx.tar.gz etc/passwd # 解压 tar.gz 格式压缩包, 直解压部分文件夹

常用参数:

OPTIONS 意义
-A 新增文件到以存在的备份文件
-B 设置区块大小
-c 建立新的备份文件
-C <目录> 仅压缩指定目录里的内容或解压缩到指定目录
-d 记录文件的差别
-x 从归档文件中提取文件
-t 列出备份文件的内容
-z 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-Z 通过compress指令处理备份文件
-f<备份文件> 指定备份文件
-v 显示指令执行过程
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-j 通过bzip2指令压缩/解压缩文件,文件名最好为*.tar.bz2
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p 保留原来的文件权限与属性
-P 使用文件名的绝对路径,不移除文件名称前的“/”号
-N <日期格式> 只将较指定日期更新的文件保存到备份文件里
-- -exclude=<范本样式> 排除符合范本样式的文件
-- -remove-files 归档/压缩之后删除源文件

参考案例:

压缩

  • 使用 gzip 压缩格式对目录压缩 .tar.gz
# 使用gzip压缩格式对某个目录进行打包操作, 显示压缩过程, 压缩包规范后缀为.tar.gz
# 格式: tar -zcvf 压缩名称.tar.gz 文件目录
# 格式: tar zcvf 压缩名称.tar.gz 文件目录
$ tar -zcvf backup1.tar.gz /etc
......
/etc/selinux/targeted/active/modules/100/passenger/cil
/etc/selinux/targeted/active/modules/100/passenger/hll
/etc/selinux/targeted/active/modules/100/passenger/lang_ext
/etc/selinux/targeted/active/modules/100/pcmcia/
......
  • 使用 bzip2 压缩格式对目录压缩 .tar.bz2
# 使用bzip2压缩格式对某个目录进行打包操作, 显示压缩过程, 压缩包规范后缀为.tar.bz2
# 格式: tar -jcvf 压缩名称.tar.bz2 /etc
$ tar -jcvf backup2.tar.bz2 /etc

# 问题描述: 
## 使用 bz2 需要安装 bzip2 否则会出现 `tar (child):bzip2: Cannot exec :Nosuch of file or directory` 错误
# 解决方法: 
## $ yum install -y bzip2 # 安装 bzip2 即可解决
  • 对当前目录的 .cfg 后缀文件进行打包,不进行压缩
# 将当前工作目录内所有以.cfg为后缀的文件打包, 不进行压缩
$ tar -cvf backup3.tar *.cfg
  • 对当前目录的 .cfg 后缀文件进行打包,不进行压缩,并删除原始文件
$ tar cvf backup4.tar *.cfg --remove-files

解压

  • .tar 格式压缩文件解压,解压到当前工作目录
$ tar -xvf backup3.tar
  • tar.gz 格式压缩文件解压,解压到当前工作目录
$ tar -zxvf backup1.tar.gz
  • tar.bz2 格式压缩文件解压,解压到当前工作目录
$ tar -jxvf backup2.tar.bz2

# 问题描述:
## 在进行 backup2.tar.bz2 解压时出现: `tar (child): bzip2: Cannot exec: No such file or directory` 错误
# 问题解决:
## $ yum install -y bzip2 # 安装 bzip2 即可解决
  • tar.gz 格式压缩文件解压,解压到 /etc 工作目录
$ tar -zxvf backup1.tar.gz -C /etc

其它操作

  • 查看压缩包内文件信息(无需解压)
$ tar -tvf backup4.tar

标签:解压,文件,bz2,tar,压缩,gz,命令,Linux
From: https://www.cnblogs.com/HOsystem/p/17115111.html

相关文章

  • 基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
    1.算法描述Astar算法是一种图形搜索算法,常用于寻路。它是个以广度优先搜索为基础,集Dijkstra算法与最佳优先(bestfit)算法特点于一身的一种算法。它通过下面这个函数来......
  • Linux入门
    Linux目录结构Linux的目录结构是一个树形结构Windows系统可以有很多盘符,如C盘、D盘、E盘Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。在Linux操作系统......
  • MAC 安装docker,下载镜像并压缩转移到LINUX服务器
    MAC安装docker前提-已经安装homebrew(如果未安装,可以打开终端,输入以下命令安装Homebrew)/usr/bin/ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/i......
  • linux007之文件、目录操作命令
    查看当前所在目录:pwd:查看当前所在目录路径ls:查看当前目录所有文件ls路径:查看指定目录下所有文件ls-l:以列的形式查看当前目录所有文件ls-l路......
  • 执行dirmap的TypeError: start() takes 1 positional argument but 2 were given报错
    dirmap.py版本v1.0,Python版本v3.8.5执行dirmap报错:TypeError:start()takes1positionalargumentbut2weregiven解决方法:卸载progressbar,重新安装progressbar2,防......
  • 基于Astar算法的栅格地图目标最短路径搜索算法MATLAB仿真,带GUI界面
    1.算法描述       Astar算法是一种图形搜索算法,常用于寻路。它是个以广度优先搜索为基础,集Dijkstra算法与最佳优先(bestfit)算法特点于一身的一种算法。它通过......
  • 如何理解SpringBoot中的Starter
    starter可以使我们少定义一些配置比如我们使用spring+springMvc进行开发时,如果需要引入mybatis等框架,还需要再去xml中定义mybatis需要的bean。使用starter可以让我们开箱......
  • Linux入门
    Linux目录结构Linux的目录结构是一个树形结构Windows系统可以有很多盘符,如C盘、D盘、E盘Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面。在Linux操作系统中......
  • Linux内核机制—smp_hotplug_thread
    基于Linux-5.10一、简介1.只是一个创建per-cpu线程执行用户提供的回调的机制。2.内核中已存在的注册staticstructsmp_hotplug_threadidle_inject_threads={//......
  • linux 基础(8)例行任务
    我们的linux系统,有时会自动进行线上更新,会定时升级locate用到的数据库。用户也会“在每天0点备份数据”或者“每天8点分析登录文件”,管理这些例行任务就叫做“工作调度”......