Linux系统中的文件传输及其优化方法

scp远程复制

1.上传

格式:scp 本地文件 远程主机用户@远程主机 IP: 远程主机目录
如果要远程复制目录的话,则需要加上 -r 参数
操作示例:
Linux系统中的文件传输及其优化方法
将 westos1 文件上传到了 ip地址为172.25.80.200的/mnt 目录下了,到172.25.80.200的/mnt 目录下进行查看:
Linux系统中的文件传输及其优化方法
上传/mnt目录到 ip地址为172.25.80.200的/mnt 目录下:
Linux系统中的文件传输及其优化方法
然后到172.25.80.200的/mnt 目录下进行查看:
Linux系统中的文件传输及其优化方法
2.下载
格式: scp 远程主机用户@远程主机 IP: 远程主机目录 本地目录
同样如果要远程复制目录的话,则需要加上 -r 参数
示例:
先将本地的/mnt目录中的内容全部清空,然后把ip为172.25.80.200的/mnt 目录下载到本地来:
Linux系统中的文件传输及其优化方法
可以看到成功下载到了本地。


rsync远程同步

rsync的用法和scp的类似

格式: rsync 本地文件 远程主机用户@远程主机 IP: 远程主机目录
需要注意的是:scp是一个复制的过程,包括文件的所有属性,而rsync只是单纯的同步文件,文件的属性并不会被同步过去,并且某些格式文件会被忽略掉。
操作示例:
在/mnt目录下创建几个文件,并且修改文件的某些属性,如下:
Linux系统中的文件传输及其优化方法
再创建一个软链接格式的文件:
Linux系统中的文件传输及其优化方法
下面我们用 rsync 远程同步到 ip地址为172.25.80.200的/mnt 目录下:
Linux系统中的文件传输及其优化方法
然后到172.25.80.200的/mnt 目录下查看:
Linux系统中的文件传输及其优化方法
可以看到软链接文件被忽略掉了,并且所有的文件的属性都发生了变化,都不是传输之前的属性了。
因此 rsync 还需要加一些参数,从而使传输文件的属性和之前的一样,一般有以下参数:

  • -r   复制目录
  • -l   不忽略软链接
  • -p   不忽略文件权限
  • -t   不忽略时间戳
  • -g   不忽略用户
  • -o   不忽略组
  • -D   不忽略块设备

把上面的参数加上之后,再进行远程同步操作:
Linux系统中的文件传输及其优化方法
然后再到172.25.80.200的/mnt 目录下查看:
Linux系统中的文件传输及其优化方法
文件的所有属性以及软链接格式都没有被忽略掉。
针对D参数的实验,需要找块设备来进行操作,/dev/pts/目录下存放的是块设备,将这个目录远程同步:
Linux系统中的文件传输及其优化方法
可以看到把块设备忽略掉了,再到172.25.80.200的/mnt 目录下查看,收到的是空目录:
Linux系统中的文件传输及其优化方法
下面再加上 -D 参数,再次进行远程同步:
Linux系统中的文件传输及其优化方法
再到172.25.80.200的/mnt 目录下查看,这一次就传输成功了:
Linux系统中的文件传输及其优化方法


文件归档(打包)

打包表示把一堆文件变成一个文件。

命令: tar
tar命令有很多参数,一般常用的参数总结如下:

  • tar f   指定生成包的名字
  • tar c   创建包
  • tar v   显示创建过程
  • tar t   查看包中内容
  • tar x   解包
  • tar r   添加文件到包中
  • tar -C   解包到指定的位置(和x配合使用)
  • tar P   可以使用绝对路径来压缩
  • tar --delete filename   删除包中指定文件
  • tar --get filename   取出包中指定文件

操作示例:
(1).把/usr/bin 打包到桌面上,用c 创建包,用f指定包的名字:
Linux系统中的文件传输及其优化方法
打包之后就会出现如下的图标:
Linux系统中的文件传输及其优化方法
(2). 用 t 参数查看包中的内容:
Linux系统中的文件传输及其优化方法
(3). 先创建一个文件,然后用r 参数把指定文件添加到已有的包中:
Linux系统中的文件传输及其优化方法
添加进去之后可以打开包查看:
Linux系统中的文件传输及其优化方法
(4). 用 --delete filename删除包中指定的文件,把刚才添加的 westos 文件删除掉:
Linux系统中的文件传输及其优化方法
删除之后可以打开包看到刚才的文件被删除掉了:
Linux系统中的文件传输及其优化方法
(5). 通过 --get filname 取出包中指定的文件:
Linux系统中的文件传输及其优化方法
(6). 通过 x 参数进行解包:
Linux系统中的文件传输及其优化方法
(7). 通过 P 参数使用绝对路径进行打包,如下:
Linux系统中的文件传输及其优化方法
(8). 通过 -C 参数指定解包的位置:
Linux系统中的文件传输及其优化方法
可以看到把包中的文件放到了指定的 /opt目录中了。


文件的压缩及解压

压缩是一种通过特定的算法来减小计算机文件大小的机制。这种机制是一种很方便的发明 , 尤其是对网络用户,因为它可以减小文件的字节总数,使文件能够通过较慢的互联网连接实现更快传输 , 此外还可以减少文件的磁盘占用空间。

压缩方法一:通过tar命令的参数进行压缩

tar命令中有三个参数是直接对文件打包后压缩的,它们分别是:

  • j   通过bzip2的压缩方式对文件进行压缩
  • J   通过xz的的压缩方式对文件进行压缩
  • z   通过gzip的压缩方式对文件进行压缩

操作示例:
Linux系统中的文件传输及其优化方法
解压方法一:通过tar命令的参数进行解压
解压时就是把上面压缩的参数 c 换成 x 就可以实现解压了。
操作示例:
Linux系统中的文件传输及其优化方法
压缩方法二:通过特定压缩命令进行压缩
一般有四种压缩方式,相对应有四种压缩的命令,并且对应有四种解压的命令,它们分别如下表:

压缩方式 压缩命令 解压命令
zip zip unzip
gzip gzip gunzip
bz2 bzip2 bunzip2
xz xz unxz

它们都是对文件打包之后的 tar文件进行压缩的,操作示例如下:
(1). zip压缩
Linux系统中的文件传输及其优化方法
unzip解压:
Linux系统中的文件传输及其优化方法
(2). gzip压缩
Linux系统中的文件传输及其优化方法
gunzip解压:
Linux系统中的文件传输及其优化方法
(3). bzip2压缩
Linux系统中的文件传输及其优化方法
bunzip2解压:
Linux系统中的文件传输及其优化方法
(4). xz压缩
Linux系统中的文件传输及其优化方法
unxz解压:
Linux系统中的文件传输及其优化方法