linux – 为什么我不能在符号链接中使用“..”中的文件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 为什么我不能在符号链接中使用“..”中的文件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1512字,纯文字阅读大概需要3分钟。
内容图文
我有以下目录结构:
misha@misha-lmd:~/tmp$ls -l
total 4.0K
-rw-r--r-- 1 misha lmd 21 Feb 18 21:00 hello.py
lrwxrwxrwx 1 misha lmd 20 Feb 18 21:01 symlink -> /home/misha/nobackup/
接下来,我尝试以下方法:
misha@misha-lmd:~/tmp$cd symlink
misha@misha-lmd:~/tmp/symlink$cat ../hello.py
cat: ../hello.py: No such file or directory
为什么这不起作用?
如果我这样做:
misha@misha-lmd:~/tmp/symlink$cd ..
misha@misha-lmd:~/tmp$cat hello.py
print "Hello World!"
一切都很好. cd处理..正确,但猫没有.什么是这种巫术,我如何按照我希望的方式让事情发挥作用?
编辑
好的,多亏了这里的一些答案,我已经发现了更多关于发生了什么的事情.首先,cd实际上不是可执行文件,它是shell的内置命令(在本例中为bash):
misha@misha-lmd:~/tmp$type cd
cd is a shell builtin
如果你是bash,你可以找到bash用于管理的环境变量,包括移动目录.还有其他内置函数,如pwd,具有实际可执行文件的对应项:
misha@misha-lmd:~/tmp/symlink$type pwd
pwd is a shell builtin
misha@misha-lmd:~/tmp/symlink$/bin/pwd
/home/misha/nobackup
misha@misha-lmd:~/tmp/symlink$/bin/pwd -L
/home/misha/tmp/symlink
/ bin / pwd可执行文件默认打印物理路径,但也可以打印给定`-L’开关的逻辑路径.同样,当我尝试做:
misha@misha-lmd:~/tmp/symlink$cat ../hello.py
cat: ../hello.py: No such file or directory
事情正在失败,因为..被解释为物理父目录,而不是逻辑目录.这允许我将我的问题细化为:
当我为可执行文件指定命令行参数时,我怎么能得到…表示逻辑父,而不是物理父?
解决方法:
因为符号链接目录中的目录..是您的主目录.
../something意味着“转到..目录”,而不是“剥离最后一个路径组件”.
更改为符号链接后,您可以尝试使用pwd -P查看您的位置.
内容总结
以上是互联网集市为您收集整理的linux – 为什么我不能在符号链接中使用“..”中的文件?全部内容,希望文章能够帮你解决linux – 为什么我不能在符号链接中使用“..”中的文件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。