有谁知道如何通过SSHFS挂载远程SFTP路径,以便可以使用符号链接?当我这样做时,我创建的所有符号链接都指向错误的文件(不是我链接的文件)。我感兴趣的所有符号链接都是相对的(不是绝对的),因此让它们看起来与在远程计算机上完全一样理想。
使用带有默认安装选项的sshfs,我无法在当前目录中创建到另一个文件的符号链接:
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:11 test2 -> /test
这显然是不正确的,因为链接目标位于当前目录(./test
)中,但是在这里您可以看到sshfs创建了一个/test
不正确的链接-链接目标/mnt/path/to/sshfs/mount/test
不是/test
。
通过transform_symlinks
在挂载sshfs文件系统时添加该选项,可以使用相同的命令获取相对链接,但它仍指向错误的位置:
$ cd /mnt/path/to/sshfs/mount
$ ln -s ./test ./test2
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> ../../../test
在这里,我尝试链接到./test
当前目录中,但是却获得了../../../test
三个级别的链接!
但是,使用命令行SFTP客户端进行连接sftp
而不是使用sshfs进行安装是可行的:
sftp> open ...
sftp> symlink test test2
...
$ cd /mnt/path/to/sshfs/mount
$ ls test2
lrwxrwxrwx 1 root webusers 11 Jul 3 09:13 test2 -> test
因此,这告诉我远程SFTP服务器工作正常(因为我可以使用专用的SFTP客户端创建符号链接),但是由于某种原因,我无法通过sshfs创建任何有效的符号链接。
奇怪的是,当我使用sshfs在提供Shell访问权限的SSH服务器上安装路径(相对于仅SFTP的服务器)时,符号链接可以正常工作-我可以正确创建它们。仅当连接到仅SFTP的服务器时,这才似乎有问题。
我究竟做错了什么?当我连接到SFTP服务器以使符号链接正常工作时,是否必须传递给sshfs特殊的选项?
sftp
用小写字母表示命令行SFTP界面,即/usr/bin/sftp
。我在帖子中的最后一个示例是,当您根据要求使用此SFTP客户端进行符号链接时。
transform_symlinks
选项的sshfs挂载的操作,带选项的ssh挂载的操作transform_symlinks
以及sftp客户端的操作。符号链接确实可以通过SSHFS正常运行,因此第一句话的答案是“无”-遇到错误或没有键入正确的命令,但是您的报告仍然不清楚,以至于不知道什么地方出了问题。
ls -l
在测试符号链接上运行时会显示什么?