一、 cp 拷贝目录
cp -r dir1 dir2
如果目录dir2不存在。命令相当于拷贝出了一份 dir1的备份 名字叫做"dir2"
如果目录dir2存在 dir1目录会被拷贝到dir2下面 结果:(dir2/dir1) ---> 这个地方很多运维会出错,执行后的结果不是预料之中的。
其实等于(加不加"/" 无所谓)
cp -r dir1/ dir2/
cp -r dir1 dir2/
cp -r dir1/ dir2
(区别 拷贝目录下的所有文件,将dir1下的所有文件和目录拷贝到dir2下,但不包括dir1本身目录)
cp -r dir1/* dir2
等于
cp -r dir1/* dir2/
(这个地方就是 解决 dir2目录存在的时候 cp -r dir1 dir2 得到预料之外的结果)
注意: 拷贝的使用经常保留时间戳和属性权限等 -p
二、scp -r 拷贝目录
同cp
三、rsync (就大不相同了)
3.1 rsync 通过ssh的
1 rsync -avcP /data1/dir1 192.168.100.13:/data1/dir1
会将dir1目录传递过去,结果会显示:
sending incremental file list
dir1/
dir1/host1_file1
2 rsync -avcP /data1/dir1 192.168.100.13:/data1/dir1/
会将dir1目录传递过去,结果会显示:
sending incremental file list
dir1/
dir1/host1_file1
3 rsync -avcP /data1/dir1/ 192.168.100.13:/data1/dir1
只会将dir1/下的目录所有文件传递过去
4 rsync -avcP /data1/dir1/ 192.168.100.13:/data1/dir1/
只会将dir1/下的目录所有文件传递过去
结果:
sending incremental file list
./
host1_file1
5 rsync -avcP /data1/dir1/* 192.168.100.13:/data1/dir1/
只会将dir1/下的目录所有文件传递过去
结果:
sending incremental file list
host1_file1
所有在rsync中目录后面加"/"与不加是很大的区别的