gpt4 book ai didi

linux - smbclient 用单引号复制文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:35:48 25 4
gpt4 key购买 nike

如何在 smbclient“put”命令中使用单引号?

例如:

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

“Guns N' Roses”中的 ' 会产生错误,但我不能使用“Guns N\' Roses”,因为这会改变路径。

最佳答案

您的 shell 不允许在单引号字符串中使用转义单引号。阅读 man bash 中标题为“QUOTING”的部分(假设您的 shell 是 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")"

关于linux - smbclient 用单引号复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41892521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com