32 我需要将/ home / user文件夹从一个硬盘复制到另一个硬盘。它有100,000个文件,大小约为10G。 我用 cp -r /origin /destination 有时由于链接断开,权限等问题,我会遇到一些错误。因此,我修复了该错误,并需要重新开始复制。 我不知道如何告诉命令“ cp”,一旦它试图再次复制,而不是如果目标文件夹中存在文件,就不会再次复制。 linux bash — 开路 source 2 我们不要cp。请改用rsync。 — William Pursell 2010年
22 cp -R -u -p /source /destination 该-u(或--update)标志不只是这一点: 在cp的手册页中: -u,-更新 仅当SOURCE文件比目标文件新或缺少目标文件时才复制 — 用户名 source 6 要从字面上仅复制不存在的文件而不更新现有文件, yes n | cp -i /source/* /destination 2>/dev/null — sventechie 4 -u仅在源文件比目标文件新或缺少目标文件时更新副本-u仅在源文件比目标文件新或缺少目标文件时更新副本-p与--preserve = mode,ownership,timestamps --preserve [= ATTR_LIST]一样,保留指定的属性(默认值:mode,ownership,timestamps),如果可能的话,还包括其他属性:上下文,链接,xattr,全部 — Covich
51 只需使用cp -n <source> <dest>。 从手册页: -n,-无弹性 不要覆盖现有文件(覆盖先前的-i选项) — Balmipour source 7 这是对该问题的唯一真实答案。 — sebix
20 rsync -aq /src /dest 除了仅复制较新的文件外,如果文件已更改,它甚至仅复制文件的较新部分。它旨在通过网络链接进行复制,以在其中减少数据量,但是在本地也很有效。 — 马丁·贝克特 source 我不能在您的帖子中添加``''格式,因为它只有两个字符。您如何编辑此命令并在命令周围添加``字符? — culix
4 查找cp命令的“ -u”选项。 — 尖尖的 source 2 不同意使用-u是一个好主意。-u仅在源较新或目标丢失时才复制。原始海报的问题是由于任何原因导致文件复制中断。因此,OP将具有半写入的文件,该文件在重新运行副本时不会更新。该文件对某人可能很重要!rsync解决了这个问题。 — hazymat
1 POSIX解决方案 其他答案使用-u 或-n选项cp。POSIX都不需要这些;也不是rsync另一个答案;也未yes在评论之一中使用。 然而,我们可以重现yes n一个while循环。这将导致以下POSIX解决方案: while true; do echo n; done | cp -Ri /origin /destination 2>/dev/null — 卡米尔·马乔洛夫斯基(Kamil Maciorowski) source
0 使用 cp -rn <sourcedirname>/. <destdirname> r开关使副本在目录上递归。 n开关(长版本no-clobber)确保现有文件永远不会被覆盖。 /.sourcedirname之后的' '确保它不会成为destdirname下的子目录,而不是将前者的所有内容复制到后者。 — 塔帕里亚 source