0

我正在尝试做一个 scp(在 SuSE LINUX 上)并看到一些我没想到的东西。

scp -q -r /home/dir1/mydir host:/var/home/dirx/BACKUPS

如果/var/home/dirx/BACKUPS/mydir在目标主机下,我看到该目录下的现有目录(包括修改时间)保持不变。仅创建新目录。

如果目标目录中存在源目录中不存在的文件,则保留它们。

复制后,我希望将目标目录视为源目录的精确副本。似乎更像是一个合并。

这是 scp 应该如何工作的吗?

4

2 回答 2

2

这是几乎任何系统中复制命令的标准行为。两个位置都存在的文件将导致目标使用源副本刷新。目标中不存在的文件将从源中创建/复制。

仅存在于目标中的文件不会受到影响,因为删除“陈旧”文件不是 copy/cp 的工作——它无法知道什么是陈旧文件。

如果要删除目标中的旧/过时文件,则需要其他工具。

于 2013-07-29T19:44:51.703 回答
0

另一个工具是 ssh 与 tar 结合使用。如果您想完全废弃目标目录并重新创建它,这将起到作用。

( cd /home/dir1/mydir && tar cf - . ) | ssh host "cd /var/home/dirx && rm -rf BACKUPS && mkdir BACKUPS && cd BACKUPS && tar xvf -"
于 2013-07-29T19:49:16.630 回答