Linux中文件传输
1.准备工作
1.设置两台虚拟机的IP并更改主机名:
虚拟机server的IP设置为:172.25.150.50
虚拟机desktop的IP设置为:172.25.150.150
desktop:
2.文件同传:rsync
rsync [参数] file [email protected]: dir
我们已经知道可以使用scp 命令来进行两台主机之间的文件传输,但是,scp 命令在进行大量文件传输时,如下:我们可以看到它是对于目录中的文件逐个进行传输:
而使用rsync可以使我们在传输文件时可以对整个目录下的内容同时进行传输:
首先我们在/mnt下新建文件并更改文件权限如下:
对于新建文件,使用rsync进行同传:
若不加任何参数,rsysnc必须指定目录下的具体文件(/mnt/test1):
在 ip50主机上的/mnt目录中,我们可以看到传输过去的test1文件,应该注意的是,传输过去的文件与源文件相比其权限、拥有者、所属用户组、创建时间都不相同,若我们相对源文件尽行一模一样的复制,则需要在rsync命令后面加具体的参数:
若我们要对整个/mnt 里面的所有内容进行同传,则应该使用 -r 参数:
rsync -r(表示目录) /mnt/ [email protected]:/mnt/
“注意”: 源文件中我们可以看到有个链接文件,类似于windows中的快捷方式,而仅使用 -r 参数,并不能是此文件也进行同传,必须使用别的参数。
在Ip50端:
可以看到除了file 之外所有的文件都同传过来,并且,与源文件的时间相比,同传过来的文件并没有保留源文件的时间戳,新建文件的时间根据主机50的时间。
若我们想保留源文件的拥有者,使用 -o(own)参数:
rsync -ro(own) /mnt/ [email protected]:/mnt/
-g 参数用户保留原文件的所有组:
rsync -rg(group) /mnt/ [email protected]:/mnt/
-p 参数用来保留文件的权限:
rsync -rp /mnt/test2 [email protected]:/mnt/
-l 参数用来将链接文件也进行同传:
rsync -rl /mnt/ [email protected]:/mnt/
-t参数用来同传文件的时间戳:
若我们在150主机上新建用户tom,并在/mnt目录中新建文件westos 将westos的用户组与拥有者都改为tom,将westos同传到50主机,此时50主机中并没有tom用户:
我们可以看到,对于本机中没有的用户,同传的文件拥有者与用户组信息会由此用户的uid与gid代替。
-D参数用于同传设备文件:
rsync -Dr /dev/pts [email protected]:/mnt/
3.文件归档
- tar ##只是将文件放在一起,不会进行压缩,文件大小不会改变
参数:
-c(creat)
-f(指定归档文件名称)
-t(查看)
tar -tf mnt.tar
-r(添加) ##只能添加存在的文件,且源文件不消失 tar -rf mnt.tar file
-x(解档) ##默认解压到当前
tar -xf mnt.tar
-C(解档到指定目录) ##解档到/mnt目录
tar -xf etc.tar -C /mnt
-delet(删除) ##从etc.tar中删除file
tar -f etc.tar --delet file
-get(只解压出指定文件) #只从etc.tar中解压出file
tar -f etc.tar --get file
-v(显示详细信息) ## -v参数必须与tf参数连用
tar -tvf mnt.tar
“注意”:-xf 参数默认将文件解档到当前目录,若要指定目录的解档路径,应该再加上 -C参数:
–get 指定解档内容,默认将文件解档到当前目录,且原归档文件中的file不会消失:
–delet 指定删除归档文件中的内容:
-v参数显示详细信息:
4.文件压缩
- zip 后缀:zip
zip -r 目的文件名 源文件名
unzip zip文件名 ##解压缩
我们可以看到,直接使用zip -r 进行压缩时,是对目录中的文件逐个进行压缩,因此,对于大容量的目录, 直接压缩很耗时而且低效,所以我们可以先使用tar 进行打包,再进行压缩: - bzip2 源文件名 ##后缀:.bz2
bunzip2 源文件名 ##解压缩 - gzip 源文件名 ##后缀: .gz
gunzip 源文件名 ##解压缩 - xz 原文件名 ##后缀:.xz
unxz 源文件名 ##解压缩
“注意”:
1). bzip2,gzip,xz只能压缩文件,不能压缩目录,因此若想将一个目录内的内容全部压缩,就需要先使用tar进行打包,再进行压缩
2). bzip2,gzip,xz对源文件进行压缩时,会覆盖源文件生成新的压缩文件
3). 解压缩时,只有unzip会保留原来的文件,只有gunzip会覆盖具有相同文件名的文件,
5.打包并压缩:
tar z(gz)cf 目的文件名 源文件
tar j(bz2)cf
tar J(xz)cf
-
解压缩
tar zxf tar jxf tar Jxf
“注意”:不同参数只能解压相应压缩格式
文件名与参数(压缩格式)无关