我正在使用该命令ssh user@remote -p 22 "tar cz my-folder" | tar xz -C /d/local-backups
将远程文件夹备份到本地驱动器。
它工作正常,并且文件夹结构在我的本地驱动器中复制得相同。但是,是否可以将文件附加到存档中,而不是提取文件并重新创建完全相同的文件夹结构?
我尝试过类似的事情ssh user@remote -p 22 "tar cz my-folder" | tar rz -C /d/local-backups/arcive.tar.gz
,但没有运气。
编辑 这是带有命令的控制台输出
`ssh user@remote -p 22 "tar cz my-folder" | tar rvf -C /d/local-
backups/archive.tar.gz`
/d/local-backups/archive.tar.gz
tar: Removing leading `/' from member names
/d/local-backups/archive.tar.gz
tar: Removing leading `/' from hard link targets
在运行命令之前,我也尝试过创建 archive.tar.gz(里面有一个文本文件),但即使档案存在,文件也不会放入。
有没有一种方法可以让最后只有一个文件“archive.tar.gz”包含从我的服务器检索到的所有文件?
答案1
根据第一步命令的思想,您在远程计算机上创建存档
ssh user@remote -p 22 "tar cz my-folder"
然后解压到本地机器上
| tar xz -C /d/local-backups
-C - change directory to "/local-backups" before performing an operation.
这就是为什么通过此命令理论上您无法在本地计算机上拥有存档。但无论如何它都比提取它简单得多。如果您只想在远程计算机上创建存档并在本地计算机上保存存档,则可以使用
ssh user@remote -p 22 "tar cz my-folder" > /tmp/archive.tar.gz
该命令将创建一个存档。之后您可以检查结果
$ tar -tvf archive.tar.gz
drwxr-xr-x zidercol/users 0 2021-12-20 18:10 Temp/
-rw-r--r-- zidercol/users 270 2021-12-20 18:10 Temp/T0