如何创建子文件夹的别名使其指向父文件夹?
如何创建子文件夹的别名使其指向父文件夹?
这个问题我之前折腾过好一会儿!你现在踩的是软链接相对路径的坑,咱们来理清楚:
你之前用的命令 ln -s ./public/ ./public/sop 之所以不生效,是因为软链接的相对路径是相对于软链接自身所在的位置,而不是你执行命令时的工作目录。你想想:sop 是放在 ./public 目录下的,当你给它设置目标为 ./public/,它会在自己所在的 ./public 目录下去找另一个 public 文件夹——但这个文件夹根本不存在,自然访问不到内容。
给你两个靠谱的解决办法:
方法一:在目标目录内创建软链接(最直观)
先进入 public 目录,然后创建指向当前目录(也就是 public 本身)的软链接 sop:
cd ./public ln -s . sop
这样 sop 这个软链接就会直接指向它所在的 public 目录,你再执行 ls ./public/sop 就能看到 public 里的所有内容,访问 ./public/sop/test.txt 也能正常打开文件了。
方法二:用绝对路径创建(适合远程操作或不确定当前目录时)
如果不想切换目录,直接用绝对路径指定软链接的目标和位置,比如假设你的 public 目录的绝对路径是 /home/pi/public,那命令就是:
ln -s /home/pi/public /home/pi/public/sop
绝对路径不会有相对路径的歧义问题,不管你在哪个目录执行,软链接都能精准指向目标。
最后可以验证一下:创建完后执行 ls -l ./public/sop,正常情况下会显示类似这样的结果:
lrwxrwxrwx 1 pi pi 1 Nov 20 14:00 sop -> .
这就说明软链接已经正确指向父目录啦!
备注:内容来源于stack exchange,提问作者u936293
相关产品推荐
相关产品推荐

