Linux进阶教程丨第11章:归档和传输文件
本文是 i 春秋作家「xiehudie」表哥分享的技术文章,旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。本套Linux进阶教程共分为14章,欢迎大家前来系统学习。
前期回顾>>
第11章:归档和传输文件
一、tar命令
创建备份和通过网络传输数据时,归档和压缩文件非常的有用。用来创建和使用备份存档的其中一个最早的最常见的命令也是tar命令。
通过tar命令,我们可以将大型文件集汇集成一个文件(存档)。tar存档是一个结构化的文件数据序列,其中含有每个文件和索引的元数据,以便可以提取某个单个文件,该存档可以使用gzip、bzip2或xz压缩方式进行压缩。
tar命令不仅能够列出存档内容,而且能将其文件提取到当前系统。以下是tar命令的常用选项、选项的长版本以及说明:
创建新存档时要使用的第一个选项为c选项,后跟f选项,接着是一个空格,然后是要创建的存档的文件名,最后应当添加到该存档中的文件和目录列表。存档会创建在当前目录中, 除非另外指定。以下是创建一个存档,其内容为用户主目录中的file1、file2和file3。
tar存档通常应当提取到空目录中,以确保它不会覆盖任何现有的文件,当root用户提取存档时,tar命令会保留文件的原始用户和组所有权。如果普通用户使用tar提取文件,文件所有权将属于存档中提取文件的用户。以下说明了将/root/etc.tar存档中文件恢复到/rootetcbackup目录:
-j或--bzip2进行bzip2压缩
-J或-xz进行xz压缩
创建存档后,使用tf选项来验证存档的内容,在列出压缩文件的内容时,不必强制使用压代理选项。如下所示:
提取压缩的tar存档时,要执行的第一步是决定存档文件应提取到位置,然后创建并更改到目录目录。tar命令会判断之前使用的压缩方式,因此通常不需要使用在创建存档时所用的同一压缩选项。可以在tar命令中添加解压缩方式,如果这样做,则必须使用正确的解压缩类型选项,否则,tar会生成错误来指出选项中指定的解压缩类型与文件的解压缩类型不匹配。提取gzip压缩的存档:
提取bzip2压缩的存档
提取xz压缩的存档:
二、系统中安全的传输和同步文件
Openssh命令对于确保在远程上安全运行shell命令非常有用。Secure copy命令scp是openssh套件的一部分,可将文件从远程系统复制到本地系统或从本地系统复制到远程系统。此命令利用ssh服务器进行身份验证,并在数据传输之前对其进行加密。我们可以为所要复制的文件的源或目标指定一个远程位置,格式为[user@]host:/path。该参数的user@部分是可选的。如果不指定该部分,则使用我们当前的本地用户名,运行命令时,scp客户端将使用基于密钥的身份验证或以提示我们输入密码的方式向远程ssh服务器进行身份验证,就像ssh一样。如下图所示:
rsync命令是在系统之间安全复制文件的另一种方式。此工具采用的算法可通过仅同步已更改的文件部分来将复制的数据量最小化,它与scp的区别在于,如果两个服务器间的两个文件或目录相似,rsync将仅复制文件系统间的差异部分,而scp仍复制所有内容。rsync的一个优点是它能够在本地系统和远程系统之间安全而高效地复制文件,虽然首次目录同步的用时与复制操作大致相同,但之后的同步只需要通过网络复制差异部分,从而会大幅度加快更新的速度。以下是rsync -a启用的选项: