mv 目录覆盖另一个

mv 目录覆盖另一个

我可能在这里疯了,但我正试图将目录移动到新位置,覆盖内容(在 Linux 上,使用 bash)。

每次我尝试时,它都会响应“mv:无法将“./src”移动到其自身的子目录中”

例如,我有:

/src
/new/dir/src
/$ mv src/ new/dir/

如果我删除目标目录,那么它就可以正常工作。我知道我可以移动源目录的内容来覆盖目标,但如果目标已经存在,我想使用相同的命令来覆盖目标,如果目标不存在,我想移动源。

答案1

尝试提供每个目录的绝对路径。

IEmv /src /new/dir/

另外,您还可以查看rsync复制文件和删除现有文件等等。

您还可以执行以下操作:

#!/bin/sh
if [ -e /new/dir/src/ ]; then
  rm -rf /new/dir/src/
fi
mv /src /new/dir/

除非您担心保存文件/new/dir/src/,在这种情况下这rsync将是更好的选择。

相关内容