1文件传输
本文这里的文件传输仅限指文件的在多台主机间的远程拷贝,方式有scp和rsync两种
1.1scp
在08节的时候我们用到了scp
这一命令,是远程拷贝的意思
scp file username@ip:/dir ##上传
scp username@ip:/dir/file /dir ##下载
scp -r ##递归复制整个目录
scp -p ##保留源文件修改时间,访问时间和访问权限
1.2rsync
远程同步,相当于远程镜像,速度快,默认会忽略:文件属性,链接文件,设备文件
rsync [参数] file username@ip:/dir
rsync -r ##同步目录
-l ##不忽略链接
-p ##不忽略文件权限
-t ##不忽文件时间戳
-g ##不忽文件所有组
-o ##不忽文件所有人
-D ##不忽略设备文件
scp和rsync的区别:
- scp是相当于复制,黏贴,如果有的话是覆盖,比较耗时间,不智能。rsync是复制,如果有重复的文件,会直接跳过,而且他自己的算法优化。
- scp是把文件全部复制过去,当文件修改后还是把所有文件复制过去,rsync第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去。
注意:
(1)scp命令中,目录后加不加/ 没有区别,因为是一个新建的过程
(2)rsync命令中,目录后加不加/ 有区别
如:
rsync /etc ##传输目录(目录里的还是原来内容)
rsync /etc/ ##传输目录里的内容
2文件归档
文件归档,,就是把多个文件变成一个文件,也称将多个文件打包成一个文件
注:
①文件在主机之间传输的更快;
②传输速度快不快取决于文件大小,并不是看文件数量的多少;
③打包不是压缩,文件大小并没有改变。
下面是tar
命令的参数以及其注释:
tar 参数 注释
----------------------------------------
tar -c ##创建(create)
-f ##指定归档文件名称
-t ##显示归档文件中的内容
-v ##归档过程中显示文件
-p ##使用源文件的原属性
-P ##可以使用绝对路径来归档
-r ##向归档文件中添加文件
--get ##取出单个文件
--delete ##删除单个文件
-x ##取出归档文件中的所有内容
-C ##指定解档目录
常用的文件归档tar
命令组合:
tar cf 目标文件.tar 源文件 ##打包源文件,-c 表示创建文档;-f指定目标文件名
tar cfv 目标文件.tar 源文件 ##显示打包的过程(显示都打包了哪些文件)
tar tf 归档文件.tar ##查看归档中的内容
tar rf 归档文件.tar filename ##添加文件filename到归档中
tar f 归档文件.tar --delete filename ##指定删除文档中的哪个文件
tar xf 归档文件.tar ## 解档(将包解开)
tar xf 归档文件.tar --get filename ##指定将哪个文件解出来
tar xf 归档文件.tar 源文件 -C 新目录 ##指定解档目录
3文件压缩与解压缩
压缩是一种通过特定的算法来减小计算机文件大小的机制。这种机制是一种很方便的发明 , 尤其是对网络用户 , 因为它可以减小文件的字节总数 ,
使文件能够通过较慢的互联网连接实现更快传输 , 此外还可以减少文件的磁盘占用空间
(1)linux下的压缩格式一共有4种 : zip 压缩 、gz压缩、bz2压缩、xz压缩
(2)压缩对于来说i大文件更明显,压缩时间长效果更明显
(3)压缩的过程包括:先打包再压缩;打包的同时压缩,解压
(4)每次压缩前后使用du -sh 目录名, 查看大小,进行对比
(5)效果优先级(小到大): zip 压缩 、gz压缩、bz2压缩、xz压缩
du -sh xxx ##查看文件的大小
------------------------------------------------
zip -r xxx.tar.zip xxx.tar ##将打包的文件(xxx.tar)压缩成zip文件(xxx.tar.zip)
unzip xxx.tar.zip ##将这个压缩文件解压
------------------------------------------------
gzip xxx.tar ##直接压缩后面的打包文件
tar zcf xxx.tar.gz /xxx ##打包的同时压缩
gunzip xxx.tar.gz ##解压
tar zxf xxx.tar.gz ##解压并解档gz格式压缩包
------------------------------------------------
bzip2 xxx.tar ##直接压缩打包的文件
tar jcf xxx.tar.bz2 /xxxx ##打包的同时压缩
bunzip2 xxx.tar.bz2 ##解压
tar jxf xxx.tar.bz2 ##解压并解档bz2格式压缩包
------------------------------------------------
xz xxx.tar ##直接压缩打包文件
tar Jcf xxx.tar.xz /xxx ##打包的同时压缩
tar Jxf xxx.tar.xz ##解压
tar Jcf xxx.tar.xz /xxx ##打包的同时压缩
对etc.tar.gz解压缩并且解档,我们可以查看etc目录解档正常: