在 FreeBSD 中(我认为它在这方面的工作方式与 Linux 等类似),我想移动src_parent/mydir
到dst_parent/mydir
。dst_parent/mydir
已经存在,并且它包含一些也包含在 中的子目录src_parent/mydir
。我们可以假设没有文件在 src 和 dst 中都存在。
编辑:源目录和目标目录位于不同的文件系统上。
例子:
src_parent/dir
:
subdir1/
file1b
subdir2/
file2b
dst_parent/dir
:
subdir1/
file1a
subdir2/
file2c
我想mv src_parent/dir dst_parent/dir
,所以dst_parent/dir
结果是这样的:
subdir1/
file1a
file1b
subdir2/
file2b
file2c
,即两个目录合并在一起。这与在 fx MS Windows 中使用 GUI 移动文件时的行为大致相同。
已经尝试过:
我尝试过这个但没有成功:
$ mv -f /src_parent/mydir/* /dst_parent/mydir/*
mv: rename /src_parent/mydir/subdir1 to /dst_parent/mydir/subdir1: Directory not empty
答案1
我会先链接文件,然后删除源目录:
cd /src_parent
find mydir -depth | cpio -pdlmv /dst_parent
检查 /dst_parent/mydir – 如果一切正常:
rm -rf /src_parent/mydir