Linux系统之文件归档、压缩和传输

一、文件的归档

    1、文件归档就是将多个文件通过归档命令变成一个归档文件,文件数量上从多个到一个。

    2、归档命令:

        (1)tar cf  :创建归档文件。如:tar cf etc.tar /etc/

                  Linux系统之文件归档、压缩和传输

                 执行该命令后,在当前目录中即创建了一个归档文件。

       (2)tar tf  :查看归档文件中的内容。如:tar tf etc.tar

                  Linux系统之文件归档、压缩和传输

       (3)tar rf :向归档文件中添加新内容。如:tar rf etc.tar /boot/
                  Linux系统之文件归档、压缩和传输

                 如图,执行后在归档文件etc.tar中添加了/boot 目录中的内容。

     (4)tar --delete ;删除归档文件中的单个文件。如:tar -f etc.tar --delete boot

                Linux系统之文件归档、压缩和传输

              注意:在将boot文件添加到归档文件中时,“/”已经被删除,执行该命令时不能在boot前加根目录“/”。

      (5)tar --get :从归档文件中取出单个文件。如:tar -f etc.tar --get boot

               Linux系统之文件归档、压缩和传输

      (6)tar xf :取出归档文件中的所有文件。如:tar xf etc.tar

               Linux系统之文件归档、压缩和传输

              由ls命令可看出,xf参数将归档文件中的所有文件全部取出并放在当前目录中。

     (7)tar xf -C :取出所有文件并指定解档目录。如:tar xf etc.tar -C /mnt

               Linux系统之文件归档、压缩和传输

              由ls命令可知,C参数可指定解档目录。

二、文件的压缩

     1、文件的压缩就是将多个文件压缩为一个压缩包,使文件所占内存减少,便于传输。

     2、文件压缩命令:

        (1)zip压缩格式:

                  zip -r etc.tar.zip etc.tar  :压缩成zip格式

                  Linux系统之文件归档、压缩和传输

                  Linux系统之文件归档、压缩和传输

                 du -sh 命令为查看文件大小,由上图对比可知,压缩文件比归档文件小的多。

                 unzip etc.tar.zip  :解压zip格式压缩包

                 Linux系统之文件归档、压缩和传输

    (2)压缩成gz格式:

                gzip etc.tar  :压缩成gz格式

                Linux系统之文件归档、压缩和传输

               gunzip:解压gz格式压缩包

                Linux系统之文件归档、压缩和传输

     (3)压缩成bz2格式

                bzip2 etc.tar :压缩成bz2格式

                Linux系统之文件归档、压缩和传输

               bunzip2 etc.tar.bz2 :解bz2格式压缩包

                Linux系统之文件归档、压缩和传输

     (4)xz格式压缩包

                xz etc.tar :压缩为xz格式

                Linux系统之文件归档、压缩和传输

                unxz etc.tar.xz :解xz格式压缩包

                Linux系统之文件归档、压缩和传输

      3、归档与压缩:

         (1)tar zcf etc.tar.gz /etc :把文件归档为tar并压缩成gz

                   Linux系统之文件归档、压缩和传输

                  tar zxf etc.tar.gz  :解压并解档gz格式压缩包

                 Linux系统之文件归档、压缩和传输

      (2)tar jcf etc.tar.bz2 /etc:把文件归档为tar并压缩成bz2

                 Linux系统之文件归档、压缩和传输

               tar jxf etc.tar.bz2:解压并解档bz2格式压缩包

                 Linux系统之文件归档、压缩和传输

     (3)tar Jcf etc.tar.xz /etc ##把文件归档为tar并压缩成zx

                Linux系统之文件归档、压缩和传输

               tar Jxf etc.tar.xz  ##解压并解档xz格式压缩包

                Linux系统之文件归档、压缩和传输

三、不同主机之间文件的传输

     1、文件的上传:发送方给接受方上传

           scp file    [email protected]:/dir

           Linux系统之文件归档、压缩和传输

          将主机app中的file文件上传给ip为172.25.20.13的主机,并存在/mnt目录下。

           Linux系统之文件归档、压缩和传输

           在接收方主机中的/mnt目录中可查看到file文件。

   2、下载:接收方主动在自己主机中下载发送方主机内的文件

           scp   [email protected]:/dir/file  /dir

           Linux系统之文件归档、压缩和传输

          接受方下载后可以在其/mnt目录下查看该文件。

          注意:文件的传输必须建立在两台主机可以互相连接的前提下才能进行!!!!

    3、rsync命令:两台主机之间目录的同步(传输)

          Linux系统之文件归档、压缩和传输

        上述命令的实验:

           在做该实验前先完成以下实验准备:

           (1)在发送方主机上建立若干个文件

                    Linux系统之文件归档、压缩和传输

           (2)建立一个软链接:ln -s file5 westos

                    Linux系统之文件归档、压缩和传输

          (3)将这些文件的权限设定为“777”

                   Linux系统之文件归档、压缩和传输

          (4)将文件的所有人、所有组改为普通用户“student”

                   Linux系统之文件归档、压缩和传输

                 做完这些实验准备即可开始实验!!!

       rsync -r  :同步目录

                   Linux系统之文件归档、压缩和传输Linux系统之文件归档、压缩和传输

                  若同步目录时只同步内容而不同步目录本身,将上左图命令中的“/mnt”改为“/mnt/”!!!!如下

                   Linux系统之文件归档、压缩和传输Linux系统之文件归档、压缩和传输

                 注意:如上左图,在同步目录的时候忽略了软链接,可用参数“l”避免!!

      rsync -rl :同步目录并不忽略软链接

                   Linux系统之文件归档、压缩和传输Linux系统之文件归档、压缩和传输

                  如上右图,同步目录过程中使用了参数“l”后软链接westos也被同步到另一台主机上。

     rsync -p :同步过程中不忽略文件权限!!

                    Linux系统之文件归档、压缩和传输

                     Linux系统之文件归档、压缩和传输

                  如上图,在添加“p”参数后,同步文件时文件权限没有被忽略,一同传输过去了!!

     rsync -o :不忽略文件所有人

                       Linux系统之文件归档、压缩和传输

                       Linux系统之文件归档、压缩和传输

                       在命令中添加“o”参数后,同步文件和原文件的所有人相同!!

     rsync -g :不忽略文件所有组!!

                     Linux系统之文件归档、压缩和传输

                     Linux系统之文件归档、压缩和传输

                    Linux系统之文件归档、压缩和传输

                    如上图在同步文件时使用“g”参数后,同步至接收主机上的文件的所有组和原文件一样!!

      rsync -t :不忽略时间戳

                   Linux系统之文件归档、压缩和传输

                   Linux系统之文件归档、压缩和传输

                   Linux系统之文件归档、压缩和传输

                 如上图在同步文件时使用“t”参数后,同步至接收主机上的文件的时间戳和原文件一样!!

      rsync -D:不忽略设备文件

                   设备文件在系统中的/dev/pts里面,如图
                   Linux系统之文件归档、压缩和传输

                   在不加参数同步该目录时,不能将目录中的内容同步过去,如下图

                   Linux系统之文件归档、压缩和传输Linux系统之文件归档、压缩和传输

                 如上图,在同步时系统提示忽略了设备文件,而且同步完成后接收方主机目录下也没有设备文件

                 Linux系统之文件归档、压缩和传输Linux系统之文件归档、压缩和传输

                 在加上“D”参数后,设备文件也可以被同步过去!!