cp -r 和 cp -R 的区别

时间:2021-07-04 22:08:32
今天倒腾linux根文件系统的时候发现 cp -r /dev /dev_bak 时,竟然会 将磁盘设备中的数据进行一次拷贝,而不是仅仅建立设备文件。
  于是到网上搜了一把,收获不小。
  这里有人问同样的问题,某人用英文作答:
-r Copies file hierarchies under the file or directory specified by the SourceFile or SourceDirectory parameter (recursive copy). The -r flag processes special files in the same manner as regular files. 

-R Copies file hierarchies under the regular files and directories from the directory specified by the SourceFile or SourceDirectory parameter to the directory specified by the TargetDirectory parameter. Special file types, such as first-in, first-out (FIFO) files and block and character device files, are re-created instead of copied.Symbolic links are followed unless the -h flag is specified. (The -R flag is preferred to the -r flag.)
  这个回答已经是很明白了,
   cp -r 会把所有source当作普通文件(regular文件);
 而cp -R 对特殊文件(管道文件,块设备文件,字符设备文件)会进行创建操作,而不是拷贝。
  其实,以前我也看到过关于cp -r 和cp -R 的区别说明,只不过当时我没有遇到具体的情景,所以没有在意。