Home
零对冲(ZeroHedge)
每日HackerNews
cp: -r or -R?
原始链接:
https://movq.de/blog/postings/2026-09-30/0/POSTING-en.html
The Hacker News 的讨论帖围绕 `cp` 递归复制标志混乱的历史展开。原文暗示了 `-r` 与 `-R` 的区别,但没有清楚解释:早期 GNU 的行为会将 `-r` 下的非目录项视为普通文件,而 `-R` 能更正确地处理目录树和特殊文件。不同 Unix 系统的行为也不一致,包括 GNU、BSD、macOS、AIX、illumos、BusyBox 等,甚至尾部斜杠都可能影响结果。 评论者指出,递归复制是后来才加入的, notably 是在 4.2BSD 中加入的,而且从未一致地传播到 System V Unix。对于脚本,`-R` 通常是更安全且符合 POSIX 的选择,而 `--recursive` 在 BSD 衍生系统中可能无法使用。`-a` 会保留元数据;也可以使用 `rsync`、`tar` 或 `scp`,但各有取舍。 后续的一条子讨论提出,可以提供专用的复制系统调用,并具备保留元数据和写时复制语义。现有 reflink 接口在 Linux、macOS 和 Solaris 之间并不统一;GNU `cp` 支持这些接口,但 `rsync` 不支持。
相关文章
原文
联系我们 contact @ memedata.com