![cp 表示两个不同目录的“同一文件”](https://linux22.com/image/104551/cp%20%E8%A1%A8%E7%A4%BA%E4%B8%A4%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9B%AE%E5%BD%95%E7%9A%84%E2%80%9C%E5%90%8C%E4%B8%80%E6%96%87%E4%BB%B6%E2%80%9D.png)
我有目录 A 和子目录 B,并且正在尝试将所有内容从 B 复制到 A。在 A 中,我运行
cp -ar B/ ~/A,
并收到消息
"cp: 'B/' and '/u/username/A/B' are the same file"
但是,我不确定为什么它认为目的地会涉及 B。
答案1
一般来说,这会尝试将 B 而不是其内容复制到 A 中。由于 B 已经是 A 的子目录,cp
因此正确地说源和目标是同一个文件。
如果您想将 B 的内容复制到 A 中,您需要:
cp -ar /path/to/A/B/* /path/to/A/
如果 A 是您当前的工作目录,则可以使用以下命令:
cp -ar B/* .
答案2
该命令cp -ar B/ ~/A
不仅会复制 的内容,还会复制 中已经存在的B
整个内容。因此,尝试在目录中运行。B
A
cp -ar B/* .
A