Tar 通过 SSH 的长选项问题

Tar issue with long option through SSH

我正在使用 ssh 连接取消存档远程 tar.gz,但我在使用 −−no−same−owner 时遇到错误。 这是命令:

ssh -i "$SERVER_KEY" -C "$SSH_STRING" -p "$SERVER_PORT" "tar -xf '/path/to/archive.tar.gz' -C '/path/to/unarchive' −−no−same−owner";

我收到以下消息:

tar: 202202no202same202owner: Not found in archive

tar: Exiting with failure status due to previous errors

没有这个选项,它工作正常,运行它在 ssh 控制台上也工作正常。

注意:我正在 Windows 工作站上的 2 个 Virtualbox 虚拟机上的 2 个 Ubuntu 服务器之间执行这些命令。

您的“−−no−same−owner”字符串中的破折号是 UTF-8 unicode minus 字符:

% echo '−−no−same−owner' | od -t x1c
0000000    e2  88  92  e2  88  92  6e  6f  e2  88  92  73  61  6d  65  e2
           −  **  **   −  **  **   n   o   −  **  **   s   a   m   e   −
0000020    88  92  6f  77  6e  65  72  0a                                
          **  **   o   w   n   e   r  \n                                
0000030

"e2 88 92"是U+2212的UTF-8编码,减号。

Tar 没有将“−−no−same−owner”识别为命令行选项,因为它不是以通常标记命令行选项的 ASCII dash 开头.而是将其视为文件名。

也许您从文字处理文档中复制并粘贴了“−−no−same−owner”?