如何为某些 2 个文件夹递归添加/替换仅修改/更新的文件?

myW*_*SON 5 shell file-copy synchronization files

所以我目前做的事情是:

rm -rf ../../../$CLOUD_INSTALL_SUBDIR/lib_boost
mkdir ../../../$CLOUD_INSTALL_SUBDIR/lib_boost
cp -r ../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/* ../../../$CLOUD_INSTALL_SUBDIR/lib_boost/
Run Code Online (Sandbox Code Playgroud)

这太糟糕了......所以我想知道如何在 2 个文件夹之间更新/删除/添加更新的文件(在演示中,我们有一个包含最新内容../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/的文件夹和一个包含可能过时的内容的文件夹../../../$CLOUD_INSTALL_SUBDIR/lib_boost)?

lae*_*ade 6

Rsync 是您最新最好的朋友。

rsync -av original/folder/ new/folder/
Run Code Online (Sandbox Code Playgroud)

尾部斜杠对两者都很重要;如果您排除第一个,它将将该文件夹作为自己的文件夹复制到new/folder/. 最好使用该-a标志来保留权限、时间戳等。

Rsync 还会根据需要自动创建目录以复制结构。