![跨已安装的文件系统的符号链接](https://linux22.com/image/143512/%E8%B7%A8%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5.png)
我可以访问已跨服务器安装的磁盘,以便从我的服务器 local1:/mnt/storage2/users 可以看到目录 storage2:/sdb1/users。
我想访问一个大文件,因此我将其符号链接到 local1 中可见的目录:
root@storage2:ln -s /home/jr/bigfile.csv /sdb1/users/jr
现在我可以用 ls 看到它
jeremyr@local1:/mnt/storage2/users/jr$ ls -l
lrwxrwxrwx 1 4294967294 users 95 Aug 8 08:01 /mnt/storage2/users/jr/bigfile.csv -> /home/jr/bigfile.csv
但在打开时(使用 python 等)我没有看到它 - ls -lL 也没有看到它:
jeremyr@local1:/mnt/storage2/users/jr$ ls -lL bigfile.csv
ls: cannot access /mnt/storage2/users/jr/bigfile.csv: No such file or directory
我可以访问大文件而不将其复制到可见分区吗?
答案1
除非机器也安装了 jr 的 homedir,否则这永远无法工作。除非它指向的文件也可以访问,否则该链接将被“损坏”。符号链接不提供某种访问文件的方法,除了指向另一个可用的路径(即使符号链接不存在)。
如果它被安装但在不同的路径,您可以使用另一个符号链接来解决它。例如,如果您没有本地“jr”用户,但您在 /export/home 中安装了远程 homedirs,则可以解决此问题,如下所示:
ln -s /export/home/jr /home/
如果这不是您想要的,那么您确实应该将要共享的文件存储在安装在您将使用它的所有计算机上的目录中。