linux cp 目录 斜杠,用cp命令拷贝文件,源目录后带不带斜杠的区别

当我还是Linux超级傻白的时候,需要拷贝一个很大的数据集,然后再拷贝源文件夹的后面跟了一个前倾斜杠,然后就发现居然拷贝的是整个文件夹里的东西,而不是文件夹本身。事儿倒是不大,我重新建一个文件夹,把这些东西挪进去就行了。后来,等我记住这一招后,发现有的时候居然也不是这样。于是,做做实验,干脆搞搞清楚。

两个文件夹,各自内容如下:

79dc6259cde70f6e4d39db44bec66ff5.png

使用命令cp –R dir_src/ dir_target后,结果如下:

ad104e8be4b7ba45fbdd2e0651a64e98.png

重做一遍,使用cp –R dir_src dir_target后,结果如下:

8016cf68c83f13d5fa5fe04ed321a98b.png

于是我就记住了这个带不带前倾斜杠的区别。

后来,我特意使用这个斜杠方法拷贝的时候,居然栽了。

两个文件夹各自内容如下:

5eca11e717beb0a0ce72bcb2aa31af7a.png

使用带斜杠的命令cp -R copytest_src/ copytest_target,结果如下:

fa57635ecaf5c7b43da23549ddd51593.png

看来不同的Linux发行版对这个cp命令带不带斜杠的执行是不一样的,第一个例子是FreeBSD,第二个是CentOS7。

总之,往后别捡懒了,想拷贝目录里面的内容而不是目录本身,就用斜杠加个星号“cp –R src/* target”; 想拷贝目录本身,就啥也不带“cp –R src target”就行了。