Тар вопрос с длинной опцией через SSH - PullRequest
0 голосов
/ 08 октября 2019

Я использую соединение 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: \ 342 \ 210 \ 222 \ 342 \ 210 \ 222no \ 342 \ 210 \ 222same\ 342 \ 210 \ 222 владелец: не найден в архиве

tar: выход с состоянием ошибки из-за предыдущих ошибок

Без этой опции все работает нормально и запускается с sshКонсоль также работает нормально.

Примечание: я выполняю эти команды между 2 серверами Ubuntu на 2 виртуальных машинах Virtualbox на моей рабочей станции Windows.

1 Ответ

1 голос
/ 08 октября 2019

Тире в строке "−−no-same-owner" - UTF-8 Юникод минус символов:

% 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" - это UTF-8кодировка U + 2212, знак минус.

Tar не распознает "-−no-same-owner" как параметр командной строки, поскольку он не начинается с черты ASCII, который обычно отмечает параметры командной строки. Вместо этого он обрабатывает его как имя файла.

Может быть, вы скопировали и вставили "−−no-same-owner" из документа обработки текста?

...