【发布时间】:2016-11-11 13:40:46
【问题描述】:
解释这个问题的最简单方法是显示我在 bash 脚本中的以下代码行。
tar -cJf - ./my_folder | ssh user@example 'tar -xJf - && rm -r ./path-to-my_folder/my_folder && mv ./my_folder ./path-to-my_folder'
我不完全理解它是如何工作的。 ('-' 在这种情况下是什么意思?)但这就是它的作用:
在内存中创建一个压缩的 tar 存档,管道以某种方式通过 ssh 推送 tar 数据
tar 存档出现在
users 根文件夹中,已解压-
ssh 命令继续执行
' ... '之间的内容,使用rm删除服务器端的旧文件夹,并通过从用户根目录移动提取的文件夹来替换
很明显,这是一条相当长的路。最好将 tar 存档解压缩到正确的位置,这样就不需要 rm 和 mv 命令。这个可以吗?
注意:我不能使用 rsync。
【问题讨论】:
-
所有关于 tar-over-ssh 的问题确实属于 unix.stackexchange.com 或 superuser.com。 SO 是针对编程问题的,而不是关于普通命令行的问题。
-
@Barmar 我同意 - 我不小心发布了一个关于服务器故障的问题,这也是错误的地方。我已将其标记为迁移
-
我投票结束这个问题,因为它属于 Unix 和 Linux
-
这没有任何意义。等待迁移
标签: bash ssh server tar remote-server