smbclient "put"コマンドで一重引用符を使用するにはどうすればよいですか?例えばsmbclient一重引用符でファイルをコピー
:
smbclient -c 'put "/mydir/video.avi" "\Music\Guns N' Roses\video.avi"'
「「バラガンズ」の」エラーを発生させるが、パスを変更しますので、私は、「ガンズ\」バラ」を使用することはできません。
smbclient "put"コマンドで一重引用符を使用するにはどうすればよいですか?例えばsmbclient一重引用符でファイルをコピー
:
smbclient -c 'put "/mydir/video.avi" "\Music\Guns N' Roses\video.avi"'
「「バラガンズ」の」エラーを発生させるが、パスを変更しますので、私は、「ガンズ\」バラ」を使用することはできません。
シェルでは、一重引用符で囲まれた文字列の中でエスケープされた一重引用符を使用することはできません。 man bash
の "QUOTING"セクションを読んでください(シェルがbashであると仮定します)。
それとも、あなたが好む場合:
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")"
すごい!ありがとう、すべて今働く。 – Vardar
この質問は、Sambaやlibsmbclientに関するものではなく、シェルで引用符を使用する方法です。どのシェルを使っていますか? – ghoti