需要从 Windows 挂载特定目录到Linux:
mount -t cifs -o username=somebody password=12,34 //192.168.1.3/share /mnt/server
Run Code Online (Sandbox Code Playgroud)
请注意,密码中有一个逗号,这Shell会将其误认为是分隔符。
遇到这种情况怎么办?
谢谢!
man mount.cifs 中的password选项说明明确表示,您不能在命令行中使用包含逗号的密码:
请注意,包含分隔符(即逗号“,”)的密码将无法在命令行上正确解析。但是,在 PASSWD 环境变量中或通过凭证文件(见下文)或在密码提示处输入的相同密码将被正确读取。
您可以在与以下相同的行中设置 PASSWD 变量mount:
PASSWD=12,34 mount -t cifs -o username=somebody //192.168.1.3/share /mnt/server
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用凭据文件,如本手册中所述。
顺便说一句,错误解释逗号的不是shell。其实,username并且password都是子选项的-o选项,这些子选项应该用逗号由被正确解析分隔程序(安装)本身:
mount -t cifs -o username=<username>,password=<password> ...
Run Code Online (Sandbox Code Playgroud)
而这样的子选项机制无法解析子选项值中的逗号。