Shell
如何將子目錄(和文件)移動和覆蓋到父目錄?
我想移動到父目錄的子目錄中有大量文件和目錄。目標目錄中已經有一些文件和目錄需要覆蓋。僅存在於目標中的文件應保持不變。我可以強制
mv
這樣做嗎?它 (mv * ..
) 抱怨mv: cannot move `xyz' to `../xyz': Directory not empty
我錯過了什麼?
您必須將它們複製到目的地,然後使用
cp -r * ..
後跟的命令刪除源rm -rf *
。我認為您不能使用
mv
.
rsync
在這裡可能是一個更好的選擇。就像rsync -a subdir/ ./
.我的測試樹格式
filename
:contents
./file1:root ./file2:root ./dir/file3:dir ./dir/file4:dir ./subdir/dir/file3:subdir ./subdir/file1:subdir
執行
rsync
:$ rsync -a -v subdir/ ./ sending incremental file list ./ file1 dir/ dir/file3
給出:
./file1:subdir ./file2:root ./dir/file3:subdir ./dir/file4:dir ./subdir/dir/file3:subdir ./subdir/file1:subdir
然後,要 emulate
mv
,您可能想要刪除源目錄:$ rm -r subdir/
給予:
./file1:subdir ./file2:parent ./dir/file3:subdir ./dir/file4:dir
如果這是錯誤的,您能否提供一個類似的範例(例如,使用此答案頂部附近的我的測試樹)以及所需的結果?