Bash

mv 目錄覆蓋另一個

  • June 20, 2010

我可能會在這裡發瘋,但我正在嘗試將目錄移動到新位置,覆蓋內容(在 Linux 上,使用 bash)。

每次我嘗試它時,它都會響應“mv:無法將 `./src’ 移動到自身的子目錄”

例如。我有:

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

如果我刪除目標目錄,那麼它可以工作。我知道我可以移動源目錄的內容來覆蓋目標,但是如果目標已經存在,我想使用相同的命令覆蓋目標,或者如果不存在則移動源。

嘗試提供每個目錄的絕對路徑。

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將是一個更好的選擇。

引用自:https://serverfault.com/questions/141237