我需要编写一个脚本,将文件移动到目标位置(关闭卷),删除原始文件和目录,然后将它们移回原始位置,同时保留所有属性。
这个概念在算法上相当简单,但是当我使用rsync时,我正在进行的实际挂机正确地递归树。
到目前为止,似乎rsync -axvvES --remove-source-files source_directory /destination/
是复制文件的最有效解决方案,但是,如上所述,由于大小限制,我不能简单地允许rsync递归树本身。最后,我认为可以使用find
向下钻取,然后允许rsync
运行,但是我怎样才能首先使用find
下降到最低点以实现此目标吗
更新:
最终,这似乎是令人满意的伎俩:
echo -e "Moving over... "
rsync -axvES --remove-source-files ${SRC_FILE_AND_PATH} ${DESTINATION_PATH}/
echo -e "Bringing back... "
rsync -axvES --remove-source-files ${DESTINATION_PATH}/${SRC_BASENAME} ./
它确实将文件夹保留在工作目录中,但由于它确实在移动后的初始文件夹上正确覆盖了属性,因此它是令人满意的,最后我可以查看空的剩余目录。