我想了解 -a 选项与 cp 命令的作用到底是什么?我的系统上的手册页没有提供太多有关此的信息。
答案1
根据手册页,cp -a
与cp --no-dereference --preserve=mode,ownership,timestamps,context,links,xattr
--no-dereference
:复制符号链接而不是它指向的内容--preserve=mode
:复制权限位--preserve=ownership
:复制所有者和组(如果可能)--preserve=timestamps
:复制mtime和atime(ctime不能复制)--preserve=context
:复制 SELinux 或 SMACK 上下文属性--preserve=xattr
:复制扩展属性
答案2
答案由用户10489是正确的。但可以从不同的角度来解决这个问题。要问“它执行什么功能cp
?”
-a
在这里,我们实际上已经被 的简写形式暗示了很多--archive
,而这正是您最常使用它的时候。我最后一次需要使用此选项是在我更改发行版并同时重新格式化驱动器时。我想保留主目录中的大部分文件,但如果让常规程序cp --recursive
运行,则可能不会复制文件系统本身中存储的某些信息。我不太关心时间戳(尽管它们也被保留下来也很棒),但事实上符号链接是按原样复制的,而不是跟随它们,这很棒。所有权信息也非常重要,特别是当您以 root 或在 LiveCD 启动期间自动创建的某个用户身份备份主目录时。
请记住,-a
“存档”时使用它是必不可少的和当您恢复文件时。否则,在恢复过程中您可能会丢失原来保存的内容。