Ваша оболочка не допускает использования одиночных кавычек с одиночными кавычками внутри строки с одной кавычкой. Прочтите раздел «QUOTING» в man bash
(при условии, что ваша оболочка - bash).
Вы должны избежать внутренней одинарные кавычки вне сингл кавычках:
smbclient -c 'put "/mydir/video.avi" "\Music\Guns N'\'' Roses\video.avi"'
Или, если вы предпочитаете:
smbclient -c 'put "/mydir/video.avi" "\Music\Guns N'"'"' Roses\video.avi"'
Или поочередно, вы могли бы положить вещи в переменных , использование форматирования и т. д. Очевидно, что я не тестировал это в своей среде, но для меня представляется разумным следующее:
$ source="/mydir/video.avi"
$ target="\Music\Guns N' Roses\video.avi"
$ cmd='put "$s" "$s"'
$ smbclient -c "$(printf "$cmd" "$source" "$target")"
Этот вопрос касается не Samba или libsmbclient, а о том, как использовать кавычки в своей оболочке. Какую оболочку вы используете? – ghoti