在 linux 上移动文件,在目标中附加现有目录

Ila*_*ste 2 linux file-management

所以让我们假设我有:

dest/dir/file1
dest/dir/file2
dest/dir/subdir/subfile1
dest/dir/subdir/subfile2
Run Code Online (Sandbox Code Playgroud)

src/dir/file3
src/dir/subdir/subfile3
src/dir/newdir/anotherfile
Run Code Online (Sandbox Code Playgroud)

...让我们假设有数千个文件和子目录。

现在我想将所有新文件从 src 移动到 dest,移动到它们各自的目录,在需要时创建新的子目录。这将等同于“ cp -a src/dir dest/ ”,但作为移动操作。显而易见的命令“ mv src/dir dest/ ”失败,因为该目录已存在于目标中。

我怎样才能用一个命令做到这一点?

Dan*_*ell 6

您可以使用 rsync。

rsync -av --remove-source-files src/ dest/
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会删除目录。您可以添加进一步的命令来删除它们。

  • 我想你可以找到。-type d -empty -exec rmdir {} \; (4认同)