我正在寻找cp -r
和之间的区别cp -a
。从文件夹复制文件时,“递归”是什么意思?
答案1
递归意味着cp
复制目录的内容,如果目录有子目录,它们也会被复制(递归)。如果没有-R
,该cp
命令将跳过目录。-r
与 Linux 上的相同-R
,但在其他一些 UNIX 变体上的某些边缘情况下有所不同。
默认情况下,cp
创建一个与旧文件内容相同、权限相同但受掩码;该副本的日期是从复制的时间开始的,并且属于进行复制的用户。使用该-p
选项,副本与原始副本具有相同的修改时间、相同的访问时间和相同的权限。如果执行复制的用户有权创建此类文件,则它还具有与原始文件相同的所有者和组。
该-a
选项意味着-R
和-p
,加上一些其他保存选项。它尝试制作尽可能接近原始版本的副本:相同的目录树、相同的文件类型、相同的内容、相同的元数据(时间、权限、扩展属性等)。
答案2
“递归”的 -r 或 -R 选项意味着它将复制所有文件,包括子文件夹内的文件。
列出的 -a 选项与 -dR 相同,这意味着它将保留链接并复制子目录的内容。保留链接的意思是,它在递归复制时不会跟随链接。
答案3
-r=-R
-a=-dR --preserve=all
-d=--no-dereference --preserve=links
然后:
-r=-R
-a=-R --no-dereference --preserve=links --preserve=all