cp是Linux中非常常用的一个命令,今天往服务器拷贝文件用了scp但碰到了一些问题,scp与cp的参数大多数是相同的
cp -r 是对一个文件夹内的文件进行拷贝,第一个参数是源文件夹,第二个参数为目标文件夹。
问题出在文件夹后面是否带/,就我自己使用来看,第一个参数是否带/很影响使用,第二个好像无所谓。
当我们想复制一个文件夹的时候, 可以通过cp -r source/ destination或者cp -r source destination/
通过source不带/的情况下,假如没有destination文件夹,第一次会新建destination文件夹,然后将source文件价的内容复制到destination文件夹中
如果带了/使用的效果还是相同的。
但如果已经存在了destination文件夹,那带不带/就完全是两码事情了,带/表示复制的是文件夹里面的内容到destination目录中,如果不带/就表示将source的目录文件夹复制到destination目录中。
做个示例
cp -r source destination
cp -r source/ destination
如果不存在destination文件夹的情况下,第一次执行该命令,效果都是相同的,新建了destination的文件夹,然后将文件复制到destination文件夹中。
第二次就不一样了,因为已经存在了destination了,所以第一个命令会将source的文件夹复制到destination中。
第二个命令就没关系了,只不过是重复有复制了一次文件到destination文件夹下,可以理解同步了一下destination问价下内容与source的关系.
所以简单来说要复制文件夹就不要带/,复制文件夹下面的内容就带/,希望这次笔记能够让我记住了