首页 > 编程知识 正文

tar命令的作用,linux more命令详解

时间:2023-05-05 06:19:02 阅读:50657 作者:4397

Linux系统中最常用的打包程序是tar。 使用tar程序创建的软件包通常称为tar软件包,tar软件包文件中的命令通常以. tar结尾。 生成tar包后,可以通过其他程序进行压缩。 此打包程序主要通过Linux的tar命令运行。

让我们分析一下Linux的tar命令。

1.tar命令定义

tar命令是类Unix和类Unix系统上的压缩打包工具,可以将多个文件组合为一个文件。 打包的文件名也是“tar”。 tar文件格式目前已成为POSIX标准,最初为POSIX.1-1988,现在为POSIX.1-2001。 因为本程序的最初目的是将文件备份到磁带(tape archive ),所以被命名为tar。

2、tar命令的一般格式

[root@RedHat_test ~]# man tar

-c创建新包文件,并使用与-v一起显示的包文件名

-v在压缩或解压缩过程中显示进程

-f要操作的文件名

-r表示添加文件,并将添加的文件添加到压缩文件的末尾

-t表示显示文件,并显示文件中文件的内容

-x文件解压缩

-z采用gzip方式压缩或解压缩,最后以. tar.gz为后缀

-j以bzip2方式压缩或解压缩,最后以. tar.br2为后缀。 压缩后的大小小于. tar.gz

-u更新压缩文件的内容

-p保持绝对路径。 也就是说,允许在备份数据中包含根目录

-保留p数据的原始权限和属性

3、压缩

#压缩方式1

[ root @ red hat _ te st01 ] # tar-jcvf log.tar.BZ2yunwei Mao

云圩茂

[root@RedHat_test 01]# ls

log.tar.bz2 yunweimao

#压缩方式2

[ root @ red hat _ te st01 ] # tar-zcvf log.tar.gzyunweimao

云圩茂

[root@RedHat_test 01]# ls

log.tar.gz yunweimao

4、解冻

#文件解压缩方式1

[root@RedHat_test 01]# ls

log.tar.bz2

[ root @ red hat _ te st01 ] # tar-jxvf log.tar.bz2

云圩茂

[root@RedHat_test 01]# ls

log.tar.bz2 yunweimao

#解压缩文件方式2

[root@RedHat_test 01]# ls

log.tar.gz

[ root @ red hat _ te st01 ] # tar-zxvf log.tar.gz

云圩茂

[root@RedHat_test 01]# ls

log.tar.gz yunweimao

5、咨询

#显示压缩文件名

[ root @ red hat _ te st01 ] # tar-TF log.tar.gz

云圩茂

#zip文件显示:所属权限、用户名用户组、日期等

[ root @ red hat _ te st01 ] # tar-tvf log.tar.gz

- rw-r---- r---root/root 462020-02-2517336047云威Mao

6、加密压缩

#语法: tar-czvf-file|OpenSSL des3- salt-k password-out/path/to/file.tar.gz

[root@RedHat_test 01]# ls

云圩茂

[ root @ red hat _ te st01 ] # tar-czvf-yunwei Mao|OpenSSL des3- salt-k 123456-outlog.tar.gz

[root@RedHat_test 01]# ls

log.tar.gz yunweimao

7、解密解压缩

#语法: OpenSSL des3- d-k密码多合一/path/to/file.tar.gz|tarxzf -

[root@RedHat_test 01]# ls

log.tar.gz

[ root @ red hat _ te st01 ] # OpenSSL des3- d-k 123456-salt-in log.tar.gz|tarxzf -

[root@RedHat_test 01]# ls

log.tar.gz yunweimao

8、查一下上面的tar包里有什么

文件

[root@RedHat_test 01]# ls

log.tar.gz

[root@RedHat_test 01]# tar -ztvf log.tar.gz

-rw-r--r--root/root         02020-02-2517:58 lydfj

-rw-r--r--root/root        462020-02-2517:47 yunweimao

9、解压部分文件

[root@RedHat_test 02]# tar -czvf data.tar.gz *

log2010.log

log2012.log

log2013.log

log2014.log

log2015.log

log2016.log

log2017.log

log2018.log

log2019.log

log2021.log

[root@RedHat_test 02]# rm -rf log20*

[root@RedHat_test 02]# ls

data.tar.gz

[root@RedHat_test 02]# tar -zxvf data.tar.gz log2012.log

log2012.log

[root@RedHat_test 02]# ls

data.tar.gz log2012.log

10、文件备份下来,并且保存其权限

[root@RedHat_test 02]# ls -Zd *

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2012.log

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2018.log

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2020.log

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2021.log

[root@RedHat_test 02]# tar -zcvpf data.tar.gz *

log2012.log

log2018.log

log2020.log

log2021.log

[root@RedHat_test 02]# rm -rf log20*

[root@RedHat_test 02]# ls

data.tar.gz

[root@RedHat_test 02]# tar -zxvpf data.tar.gz

log2012.log

log2018.log

log2020.log

log2021.log

[root@RedHat_test 02]# ls -Zd *

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 data.tar.gz

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2012.log

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2018.log

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2020.log

-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log2021.log

# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时

11、在文件夹当中,rrdfs个日期新的文件才备份

# 在 /home 当中,比 2020/02/27 新的文件才备份

[root@RedHat_test 02]# tar -N '2020/02/27' -zcvf home.tar.gz /home

12、备份的时候排除部分文件或目录

[root@RedHat_test 02]# ls

bin conf logs

[root@RedHat_test 02]# tar -czvf test.tar.gz * --exclude c.log --exclude logs

bin/

conf/

13、往tar包追加和删除内容

1)只能已归档的文件才能追加文件。

#如果tar.gz文件是如此生成。即tar.gz是压缩(-z)和归档(-c)文件,则无法给它追加文件。

[root@RedHat_test 02]# tar -zcvf data.tar.gz log*

2)生成可以追加的tar文件

[root@RedHat_test 02]# ls

log2018.log log2019.log log2020.log log2021.log

[root@RedHat_test 02]# tar -cvf data.tar.gz *

log2018.log

log2019.log

log2020.log

log2021.log

3)追加文件

[root@RedHat_test 02]# touch log2022.log

[root@RedHat_test 02]# tar -rvf data.tar.gz log2022.log

log2022.log

4)查看归档内容

[root@RedHat_test 02]# tar -tf data.tar.gz

log2018.log

log2019.log

log2020.log

log2021.log

log2022.log

5)删除tar包里的文件

[root@RedHat_test 02]# tar --delete -vf data.tar.gz log2018.log log2019.log

[root@RedHat_test 02]# tar -xvf data.tar.gz

log2020.log

log2021.log

log2022.log

Linux中tar命令只是众多的常用的Linux命令中专门用来控制打包工具的一个而已,在Linux中还有成千上万个命令需要我们去认识和掌握,我们不能一蹴而就,可以结合本站的Linux教程,通过不断的学习,积少成多,逐步掌握。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。