cp -R 参数的区别?

cp -R 参数的区别?

之间有什么区别:

cp -R /a/* /b 

cp -R /a/. /b

最初的想法是将文件夹 /a 中的所有内容复制到文件夹 /b 中。

答案1

唯一的区别是第一个命令,

cp -R /a/. /b

会将隐藏文件和目录从/ato复制/b,而第二个命令,

cp -R /a/* /b

不会这样做。

第二个命令不复制隐藏文件的原因是 扩展*为 中的所有非隐藏名称(除非在 中设置了/ashell 选项,或者在使用的任何 shell 中设置了等效选项(如果可用))。dotglobbash


-r第二个命令中使用的原始问题而不是-R

为了向后兼容,该标志-r保留在某些实现cpcp例如 GNU)中。它是命令的非标准标志cp,并且在拥有它的实现上,它是相似的-R

在GNU 和AIX 中cp-r-R是相同的。在 的一些历史实现中cp,它以不同的方式处理特殊文件,例如 FIFO 和套接字。 Solaris 的实现cp -r/-R仅对于 FIFO 有所不同(-R重新创建它们,-r从中读取)。没有一个免费的 BSD 有-rcp实现。

答案2

cp -R

递归复制并复制原始文件类型。这是 POSIX 标准中唯一提到的递归方法。

cp -r

是递归复制的历史选项。它打开所有文件并读取内容,然后使用读取的内容创建纯文件。这是历史悠久的 UNIX 递归选项。它在现代实现中可能不可用。

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cp.htmlPOSIX 手册页。

相关内容