我需要一种方法来移动 linux 目录及其所有内容,前提是它当前不存在于目标位置。如果它当前确实存在(包括所有子文件夹和文件),则可以递归地删除源文件夹。
我目前使用以下框架,但希望扩展它以满足上述标准。
mv /source/* /target
谢谢
rsync -av --remove-source-files source/ destination/ && rm -rf source/
source/
并相应地替换destination/
。
Gnumv
有-n
or--no-clobber
选项。不幸的是,即使mv
由于该--no-clobber
选项而导致无操作,它似乎也会以成功的退出状态返回,但是在您的用例中,您似乎可以简单地进行--no-clobber
移动,然后如果移动成功则清除源,而不管不管它有没有做任何事情。