1.scp
1.上传
scp file root@ip:dir ##dir为绝对路径
从ip地址为172.25.254.156的主机向ip地址为172.25.254.111的主机桌面发送文件名为top.txt的文件
接收成功
如果要上传的不是文件而是目录,则一定要加参数-r
接收成功
2.下载
scp root@ip:file dir ##file为绝对路径
server端有一个名为server_to_client的文件
client端输入上述命令就可以从server端下载该文件。
2.rsync
rsync ##远程同步,速度快,默认会忽略文件属性,链接文件,设备文件
-r ##同步目录
-p ##同步权限
-o ##同步文件所有人
-g ##同步文件所有组
-t ##同步文件时间戳
-l ##同步链接文件
-D ##同步设备文件
在发送端主机建立五个文件,并修改其权限为777和所属人为potizo和所属组为zoe。
发送端向接收端通过rsync传输这五个文件
接收端收到的五个文件权限、所属组所属人以及时间都与发送端不同。
加上-p参数可以同步权限
此时权限为777,与发送端文件权限相同
加上-ropg可以同步目录、权限、所属人以及所属组。
这里虽然显示的是1001和8888,但其实就是对应的uid与gid。为何不显示所属人与所属组呢?因为在接收端并没有该用户以及该组,所以虽然同步了,但是显示uid与gid。
再看一个例子
发送端有一个/dev/pts的目录,这个目录下的文件前面都显示c,表示这些文件都为设备文件。如果我们只用-r参数传输,就没有把这些设备文件同步过去。
显然,接收端这边时有pts目录,目录里面没有发送端的那三个设备文件
在发送端加上-D参数,表示同步设备文件
接收端此时的pts目录下也有了这三个设备文件
3.打包
文件打包,就是把多个文件变成一个归档文件
tar
-c ##创建
-x ##解档
-v ##显示过程
-f ##指定归档文件名称
-t ##查看归档文件内容
-r ##添加文件到归档中
--get ##解档指定文件
--delete ##删除归档中的指定文件
-C ##指定解档目录
c表示创建归档文件,f表示指定归档文件名为etc.tar,这句命令就是把/etc目录以及file1文件放进名为etc.tar归档文件中。
如果我们是想把新的文件放进已经存在的归档文件中,需要r参数,所以这句命令是把file2文件放进已经存在的etc.tar中。
–delete可以帮助我们删除归档文件中的指定文件,所以这句命令是指删除了etc.tar中的file1这个文件。
x表示解档,C表示指定解档路径。所以这句命令意为把etc.tar解档到/root/Desk下,可以看到解档出来后,桌面多了etc目录以及法file1文件。
那如果不想解档目录中的所有文件,就需要用到–get,可以指定文件来解档。
4.压缩
为更好的比较一下4中压缩方式,这里先把/etc目录打包。
etc.tar归档文件大小为30M
1.zip
zip -r xxx.tar.zip xxx.tar ##压缩(需指定压缩名)
unzip xxx.tar.zip ##解压
压缩的时候,zip要指定压缩名(后缀为.zip),这与其他三种压缩方式不同。
解压解档。这里由于本来就存在etc.tar,所以解压的时候会提示。
2.gzip
gzip xxx.tar ##压缩(不需指定压缩名)
gunzip xxx.tar.gz ##解压
tar zcf xxx.tar.gz /xxx ##打包压缩同时执行
tar zxf xxx.tar.gz ##解压同时解档
压缩
解压
打包和压缩同时执行
解压解档到指定路径
3.bzip2
bzip2 xxx.tar ##压缩(不需指定压缩名)
bunzip2 xxx.tar.bz2 ##解压
tar jcf xxx.tar.bz2 /xxx
tar jxf xxx.tar.bz2
压缩
解压
打包压缩同时执行
解压解档到当前
4.xz
xz xxx.tar ##压缩(不需指定压缩名)
unxz xxx.tar.xz ##解压
tar Jcf xxx.tar.xz /xxx
tar Jxf xxx.tar.xz
压缩
解压
打包同时压缩
解压解档到当前