Linux命令分析:tar

来源:互联网 发布:wave动作数据mmd 编辑:程序博客网 时间:2024/05/27 19:26

用途:将文件或目录打包成一个.tar存档文件,并调用相关命令压缩或解压

用法:tar   选项...   文件...

tar命令后面至少要接一个参数,参数后指定要处理的文件或目录,如果指定一个目录则该目录下所有子目录及文件都将被打包


选项:

-A   --catenate,--concatenate   将新生成的存档添加到现有存档文件

-c   --create   建立新的存档文件

-d   --diff,--compare   没什么用

--delete   删除tar包中的某个文件

-r   --append   附加文件到存档文件的结尾

-t   --list   列出存档中文件的目录

-u   --update   仅将较新的文件附加到tar文件

-x   --extract,--get   从tar包中展开文件

注意:c,x,t三个参数同时只能出现一个

-f   --file=ARCHIVE   指定要处理的存档文件,在有多个选项时,f要放在最后,后面要立刻接目标存档文件

-j   --bzip2   调用bzip2命令压缩tar包

-J   --xz   调用xz命令压缩tar包

-p   --preserve-permissions   展开并保留所有文件信息(root用户默认)

-v   --verbose   详细显示处理的文件

-z   --gzip   调用gzip命令压缩tar包

-g   --listed-inccremental=FILE   后接新的GNU格式的增量备份,常用于做快照

-G   --incremental   处理原有的增量备份

--level=NUMBER   创建增量存档时指定dump级别

-n   --seek   存档具有seekable属性

-k   --keep-old-files   保存现有文件,从存档中展开时不覆盖,作为错误处理

--keep-newer-files   不覆盖比存档中更新的文件

--no-overwrite-dir   不覆盖现有目录

--remove-files   在文件添加到存档后删除原文件

-W   写入存档后进行校验

-O   将文件展开到标准输出

-m   档案中恢复的文件,不更改mtime

-force-local   强制使用本地存档,即使存在克隆

-M   建立多个存档,存放在不同卷上

-a   --auto-compress   通过指定tar文件的后缀自动判断要调用哪个命令来压缩

-Z   用compress命令压缩

-C   --directory=DIR   转到指定目录

-h   跟踪动态链接,打包的是所指向的文件

-N   --newer=DATE-OR-FILE   只存储时间较新的文件

-P   --absolute-names   不去掉文件名前面的/

-T   --files-from=FILE   从FILE中获得要展开或创建的文件名

-X   --exclude-from=FILE   从FILE中获得要排除的文件名

-R   显示存档中每个文件的块信息

-w   每个操作都要确认


典型用法:

1.将目录下的文件打包

tar   -cvf   /tmp/backup.tar   /var/log   #   将/var/log下的日志全部打包到/tmp/backup.tar文件里,不压缩

tar   -zcvf   /tmp/backup.tar.gz   /var/log   #   打包后,用gzip压缩

tar   -jcvf   /tmp/backup.tar.bz2   /var/log   #   打包后,用bzip2压缩


2.将多个文件打包成一个tar文件

tar   -cvf   backup.tar   文件1   文件2   文件3...

tar   --exclude   /var/log/maillog   -cvf   backup.tar   /var/log/*   /etc/passwd   #   备份日志和用户名单到backup.tar,但排除mail日志


3.查看tar包内有哪些文件

tar   -tvf   backup.tar

tar   -ztvf   backup.tar.gz


4.将tar包解压缩

tar   -xvf   /tmp/backup.tar   -C   /root   #   将tar包展开到指定目录,如不指定则到当前目录

tar   -zxvf   /tmp/backup.tar.gz

tar   -zxvf   /tmp/backup.tar.gz   syslog   #   只将tar包中的syslog这一个文件解压出来


5.删除tar包中的某个文件

tar   --delete   -f   /tmp/backup.tar   maillog   #   将tar包中的maillog删除,但此--delete不能删除压缩过的tar包中的文件


6.将/etc目录里的所有文件备份下来,并保存权限

tar   -zxvpf   /tmp/etc.tar.gz   /etc


7.只备份时间较新的文件

tar   -N   '2018/01/01'   -zcvf   /etc/init.d


8.更改tar包

tar   -rvf   backup.tar   /etc/sysconfig   #   将sysconfig文件添加到backup.tar里

tar   -xvf   backup.tar   sysconfig   #   将sysconfig文件取出来,tar包后面不接文件名则解出整个tar包的文件


9.创建增量快照


第一次对test目录做完整备份,同时-g参数做备份快照

随后在目录下新建文件test/4,修改/test/1的内容

再根据backup.snap这个备份快照对test目录做增量备份,备份文件为backup1.tar.gz,该文件里记录的是第一次完整备份后的改动




















原创粉丝点击