Votre shell n'autorise pas l'utilisation de guillemets simples échappés dans une chaîne entre guillemets simples. Lisez la section intitulée "QUOTING" au man bash
(en supposant que votre shell est bash).
Vous devez échapper aux apostrophes internes extérieur la chaîne unique cité:
smbclient -c 'put "/mydir/video.avi" "\Music\Guns N'\'' Roses\video.avi"'
Ou, si vous préférez:
smbclient -c 'put "/mydir/video.avi" "\Music\Guns N'"'"' Roses\video.avi"'
Ou alternativement, vous pouvez mettre les choses dans les variables , utilisez la mise en forme, etc Évidemment, je n'ai pas testé cela dans votre environnement, mais ce qui suit me semble raisonnable:
$ source="/mydir/video.avi"
$ target="\Music\Guns N' Roses\video.avi"
$ cmd='put "$s" "$s"'
$ smbclient -c "$(printf "$cmd" "$source" "$target")"
Cette question ne concerne pas Samba ou libsmbclient, il s'agit de savoir comment utiliser des guillemets dans votre shell. Quelle coque utilisez-vous? – ghoti