我无法cd
像平常一样进入桑巴舞:
cd smb://server/folder
它说:"bash: cd: smb/..." No such file or directory.
但是如果我在 Nautilus 中转到该文件夹并右键单击它,则属性中显示的位置是:
smb://server/folder
为什么这不起作用?谢谢
答案1
程序“cd”只能导航到挂载到本地 VFS 的目录,以“smb://”开头的 URI 描述了远程资源。为了 cd 到 SMB 共享,您必须挂载它。
就您而言,听起来 SMB 共享已安装并可从 nautilus 访问。这意味着 SMB 共享已安装在您本地 VFS 的某个位置。
在 Ubuntu 15.04 中,我相信 SMB 共享(至少是您使用 nautilus 连接的共享)的默认挂载点是:
/run/user/$UID/gvfs/smb:host=$SERVER_NAME
因此,请尝试:
$ cd /run/user/$UID/gvfs/smb:host=server/path/to/file.txt
编辑:有关此内容的更深入解释,请参见unix stackexchange 上的类似问题有一些很好的答案
答案2
您不能仅从cd smb://server/folder
终端使用。
要从终端访问文件夹,您mount
首先需要访问该文件夹。
sudo mkdir /mnt/server
sudo mount -t cifs //remote/folder /mnt/server -o username=user uid=name
或者直接smbclient //hostname/folder
输入用户名/密码。登录成功后,您就可以访问文件夹了。
答案3
shell(bash)不使用唯一资源定位器(URL)。
除了其他告诉您如何手动挂载 samba 共享的答案之外,如果您可以使用文件管理器访问它,则它已使用 gvfs 挂载。您将能够通过.gvfs/
主目录中的目录访问它:
cd ~/.gvfs/
ls
如果我没记错的话,你应该会看到一个名为的目录folder on server/
。
答案4
如果其他方法不起作用(就像我的情况一样),您可能会发现这个会:
cd /$XDG_RUNTIME_DIR/gvfs/smb-share\:server=yourserver,share=yourshare/
适当更换yourserver
和yourshare
。
如果你使用制表符补全,请注意你的 shell 会错误地转义逗号、美元符号和斜线。但是,冒号应该逃脱。