Я не могу cd
войти в самбу, как обычно делал бы:
cd smb://server/folder
Он говорит: "bash: cd: smb/..." No such file or directory.
Но если в nautilus я иду в папку и щелкните его правой кнопкой мыши, расположение, указанное в свойствах:
smb://server/folder
Почему это не работает? Благодаря
Вы не можете использовать только 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
и введите имя пользователя / пароль. После успешного входа вы сможете получить доступ к папкам.
Программа «cd» может перемещаться только по каталогам, смонтированным в вашей локальной VFS, а URI, начинающийся с «smb: //», описывает удаленный ресурс. Для того, чтобы перейти на общий ресурс 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
[ 117] Правка: Для более подробного объяснения этого, вот аналогичный вопрос о unix stackexchange с некоторыми отличными ответами
Если другие не работают (как в моем случае), вы, вероятно, найдете это:
cd /$XDG_RUNTIME_DIR/gvfs/smb-share\:server=yourserver,share=yourshare/
Замените yourserver
и yourshare
соответственно.
Если вы используете завершение табуляции, остерегайтесь того, что ваша оболочка неправильно экранирует запятые, символы доллара и косые черты. Двоеточие, однако, следует избежать.
Оболочка (bash) не использует уникальные локаторы ресурсов (URL).
В дополнение к другим ответам, в которых рассказывается о том, как монтировать общие ресурсы samba вручную, если вы можете получить к нему доступ с помощью файлового менеджера, он уже был смонтирован с помощью gvfs. Вы сможете получить к нему доступ через каталог .gvfs/
в вашем домашнем каталоге:
cd ~/.gvfs/
ls
Если я прав, вы должны увидеть каталог с именем folder on server/
.
Протокол smb не может быть использован подобным образом из bash
. Если вы хотите его использовать, вы должны смонтировать общий ресурс smb с помощью команды mount
или добавить его в свой /etc/fstab
, например (взято из моего fstab):
//server/smb-share /my/path/where/to/mount/it cifs guest,uid=1000,iocharset=utf8,codepage=unicode,unicode 0 0