所以我目前正在做这样的事情:
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/
这太糟糕了...所以我想知道如何在两个文件夹之间更新/删除/仅添加更新的文件(在演示中,我们有一个包含最新内容的文件夹../../../$BOOST_ROOT_DIR/$BOOST_INSTALL_SUBDIR/lib/
和一个包含可能过时内容的文件夹../../../$CLOUD_INSTALL_SUBDIR/lib_boost
)?
答案1
Rsync 是您最新最好的朋友。
rsync -av original/folder/ new/folder/
尾部斜杠对两者都很重要;如果您排除第一个,它将将该文件夹作为它自己的文件夹复制到new/folder/
.最好使用该-a
标志来保留权限、时间戳等。
Rsync 还将根据需要自动创建目录以复制结构。
答案2
您可以使用 rsync 来实现这一点,在您的示例中它会像这样:
rsync -va ../../../$CLOUD_INSTALL_SUBDIR/lib_boost/ ../../../$CLOUD_INSTALL_SUBDIR/lib_boost
其中 -v 选项启用详细模式,-a 启用存档模式
您可以在其上阅读有关 rsync 的更多信息手册页