cp -r 不从网络驱动器复制所有文件

cp -r 不从网络驱动器复制所有文件

我遇到了一个不寻常的问题,这可能是因为我是命令行新手,但也适用于使用 GUI。

情况是,我有一个网络驱动器安装在 ,/media/drive/dir使用 的cifs mount登录(通过修改fstab,和0777的权限),我想将一个包含多个子目录的目录复制到 ,每个子目录最多有 100 个文件(第三测序)。为此,我使用:dirsfiles/home/USER/Desktop/dest

cp -r /media/drive/dir /home/USER/Desktop/dest

运行此命令时,cp不会出现任何错误消息,但并非所有子目录都存在,有时子子目录也会丢失。相同的命令可以很好地从本地系统内的其他位置复制文件,但似乎只发生在网络驱动器上。当我copy/paste从 GUI 使用命令时也会发生这种现象。我可以单独复制文件/目录,但这非常费力且耗时。

我读过这里的许多其他帖子,但找不到任何可比较的帖子。任何帮助都感激不尽。

答案1

最可能的原因是源目录包含符号链接。

https://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html#cp-invocation

从符号链接复制时,cp 通常仅在不递归复制或使用 --link (-l) 时才遵循链接。可以使用 --archive (-a)、-d、--dereference (-L)、--no-dereference (-P) 和 -H 选项覆盖此默认设置。如果指定了多个选项,则最后一个选项会默认覆盖其他选项。

将 -option添加-L到您的cp- 命令:

cp -rL /media/drive/dir /home/USER/Desktop/dest 

答案2

希望有一天这能帮助别人:

事实证明,这是由于计算机和服务器之间的连接质量下降造成的,只需重新启动系统并重新安装服务器即可修复此连接,并使用原始命令正确复制文件。

相关内容