Bash 将文件从源复制到目标,但删除目标中但不在源中的任何文件

Bash 将文件从源复制到目标,但删除目标中但不在源中的任何文件,bash,Bash,因此,我使用Bash将一个文件夹克隆到另一个文件夹。目前,我的脚本是递归和noclobber。效果很好 !cp -r -n /content/gdrive/Shared\ drives/Source/. /content/gdrive/Shared\ drives/Destination 这本很好。我只是在寻找一种方法来删除任何文件,如果不是在源驱动器上,而是在目标驱动器上。也许我需要一个完全不同的脚本方法 编辑。我最终使用了 !rsync -v -r --ignore-existing /g

因此,我使用Bash将一个文件夹克隆到另一个文件夹。目前,我的脚本是递归和noclobber。效果很好

!cp -r -n /content/gdrive/Shared\ drives/Source/. /content/gdrive/Shared\ drives/Destination
这本很好。我只是在寻找一种方法来删除任何文件,如果不是在源驱动器上,而是在目标驱动器上。也许我需要一个完全不同的脚本方法

编辑。我最终使用了

!rsync -v -r --ignore-existing /gdrive/Shared\ drives/Source/. /gdrive/Shared\ drives/Destination --delete

现在似乎在工作。我使用的是-u,但它似乎只是因为日期更改而重新复制文件,而不是文件本身。谢谢1218985的帮助

您可以使用
rsync
这样做:

rsync--删除“/content/gdrive/Shared\drives/Source/”/content/gdrive/Shared\drives/Destination/”

查看
rsync
。如果在本地目录之间同步,那么添加压缩除了降低速度之外,可能什么都做不了。是的,这是有意义的。