2017-01-27 4 views
0

wie kann ich single quote in smbclient "put" befehl verwenden?smbclient kopierdatei mit einem angebot

Zum Beispiel:

smbclient -c 'put "/mydir/video.avi" "\Music\Guns N' Roses\video.avi"' 

Die 'in "Guns N' Roses" einen Fehler erzeugen, aber ich kann nicht "Guns N \‘ Roses" verwenden, da wird Pfad ändern.

+0

Bei dieser Frage geht es nicht um Samba oder libsmbclient. Es geht darum, wie Sie Anführungszeichen in Ihrer Shell verwenden. Welche Shell verwendest du? – ghoti

Antwort

0

Ihre Shell erlaubt nicht die Verwendung von Escape-Anführungszeichen in einer Zeichenfolge mit nur einem Anführungszeichen. Lesen Sie den Abschnitt mit dem Titel "Zitieren" in man bash (vorausgesetzt, Ihre Shell ist Bash).

Sie müssen die inneren Apostrophe außerhalb die Single-String in Anführungszeichen entkommen:

smbclient -c 'put "/mydir/video.avi" "\Music\Guns N'\'' Roses\video.avi"' 

Oder, wenn Sie bevorzugen:

smbclient -c 'put "/mydir/video.avi" "\Music\Guns N'"'"' Roses\video.avi"' 

oder alternativ könnte man die Dinge in Variablen setzen , verwende Formatierung, etc. Natürlich habe ich das nicht in deiner Umgebung getestet, aber folgendes erscheint mir vernünftig:

$ source="/mydir/video.avi" 
$ target="\Music\Guns N' Roses\video.avi" 
$ cmd='put "$s" "$s"' 
$ smbclient -c "$(printf "$cmd" "$source" "$target")" 
+0

Großartig !!! Danke, alle arbeiten jetzt. – Vardar

Verwandte Themen