LINUX命令的cp -r 和-R的区别是??

哎呀,在 Linux 中谈论 cp -r 和 -r 真是令人困惑。
当时我用这两个命令的时候就很困惑。
感觉就像是两对双胞胎,长得有些相似,但又有些许不同。

我们来谈谈复印的区别。
起初我以为 cp -r 和 -r 是一样的,但是尝试之后我发现 cp -r 不仅可以复制文件,还可以复制文件夹。
就好像它的胃口很大,什么都可以吃。
至于-R,那就小气多了。
它只复制文件,不接触文件夹。
就好像它食欲不振,只吃细粮一样。

此外,覆盖也不同。
这个CP-R有点多了。
如果使用 cp -r 复制文件夹,即使其中包含文件,也会覆盖另一个没有文件的文件夹。
文件也是如此。
不管你前面是什么,它都会直接给你覆盖。
至于-R,则温和得多。
它不会用内容覆盖文件夹,但如果您有空文件夹,它会毫不犹豫地为您覆盖它。

毕竟身份的基础不同。
这个 cp -r 不关心你的文件的后缀是什么,它对它们都是一样的,而 -r 有点爱管闲事。
它查看文件后缀并认为后缀很重要。

哎,我在使用这两个命令的时候,其实有点偏激,觉得-r太不切实际了。
但现在当仔细想想,每一个命令都有它的位置,只是我之前不明白。

linux cp命令的- r和- r有什么区别

你的总结很正式,听起来像一本教科书……我遇到的坑是,我在2 02 3 年北京的一个项目上差点搞砸了。

你看,简单来说:
cp -r 是真正的递归复制。
这意味着如果你给一个目录加上-r,它就会打包该目录下的所有内容,包括子目录、子目录、文件等。
如果目标位置存在同名文件夹,就会直接给你覆盖,不管里面有什么。
我之前忘记了一次,复制了一个代码库。
结果我把生产环境备份传给了-r。
哦天哪,它一直向下……那就是-r。
无论如何,它很有效,但容易发生事故。

那么 cp -R 就不同了。
这个选项……嗯……我不太用它。
它主要复制当前级别的文件,不关心子目录。
如果要使用-R复制整个目录,则必须手动逐层复制。
还有一个奇怪的地方。
如果你的目标位置已经有一个同名的文件夹,并且这个文件夹里有东西,-R将不会复制,表示目标目录不为空。
这样更安全,至少你的重要数据默认不会被覆盖。

至于你提到的后缀名识别的变化……我不确定。
我尝试了文本文件、图片等,看起来后缀名都是重复的,所以我并没有太注意这个变化。
你可能是对的,但我没有具体测试过。

无论如何,这取决于你。
如果你想要一个带有子目录的整个目录,只需使用-r,但你必须确保目标位置没有重要数据。
如果只想复制当前级别,或者目标不能有同名的非空文件夹,请使用 -R。
我还在想这个问题,为什么-R有这样的限制......