【发布时间】:2016-05-20 22:32:11
【问题描述】:
我需要一种方法来移动 linux 目录及其所有内容,前提是它当前不存在于目标位置。如果当前确实存在(包括所有子文件夹和文件),则可以递归删除源文件夹。
我目前使用以下框架,但希望扩展它以满足上述条件。
mv /source/* /target
谢谢
【问题讨论】:
我需要一种方法来移动 linux 目录及其所有内容,前提是它当前不存在于目标位置。如果当前确实存在(包括所有子文件夹和文件),则可以递归删除源文件夹。
我目前使用以下框架,但希望扩展它以满足上述条件。
mv /source/* /target
谢谢
【问题讨论】:
rsync -av --remove-source-files source/ destination/ && rm -rf source/
相应地替换 source/ 和 destination/。
【讨论】:
Gnu mv 有 -n 或 --no-clobber 选项。不幸的是,即使mv 是由于--no-clobber 选项而导致的无操作,它似乎也会以成功的退出状态返回,但是似乎在您的用例中,您可以简单地执行--no-clobber 移动然后如果移动成功则清除源,无论它是否执行任何操作。
【讨论】: