Linux中有两条看似等价的路径,一条有效,另一条无效
我在目录~/www中,正在尝试编辑~/.bashrc 我做了vi../.bashrc和Vim创建了一个新的空文件 我做了一张cd。。和vi.bashrc,并打开正确的文件 这应该在Linux中发生吗 编辑:Linux中有两条看似等价的路径,一条有效,另一条无效,linux,command-line,Linux,Command Line,我在目录~/www中,正在尝试编辑~/.bashrc 我做了vi../.bashrc和Vim创建了一个新的空文件 我做了一张cd。。和vi.bashrc,并打开正确的文件 这应该在Linux中发生吗 编辑: 我刚刚在~/www中尝试了touch../.bashrc,但找不到应该创建的文件。如果当前目录是符号链接,则会发生这种情况 当您将cd刻录到符号链接时。。将引用符号链接目标的父级: $ ln -s /tmp mylink $ cd mylink $ pwd /home/me/mylink $
我刚刚在~/www中尝试了touch../.bashrc,但找不到应该创建的文件。如果当前目录是符号链接,则会发生这种情况 当您将cd刻录到符号链接时。。将引用符号链接目标的父级:
$ ln -s /tmp mylink
$ cd mylink
$ pwd
/home/me/mylink
$ realpath .
/tmp
$ realpath ..
/
然而,bash会因为聪明和有cd而迷惑你。。表现不同。以下是帮助光盘:
`..通过删除前一个路径名组件进行处理
返回斜杠或目录的开头
这意味着当你播放cd时,bash会神奇地将你从/home/me/mylink带到/home/me。这种差异非常令人困惑,但也非常有用
如果您使用cd-p..,这个魔法就不会被调用,它将把您从/home/me/mylink带到/,就像所有其他工具一样
当你意识到。。在任何方面都不是表示父目录的特殊语法。每个目录实际上都有一个诚实的Linus条目,名为
在旧的Unix系统上,这只是一个方便的约定,mkdir/foo/bar也会自动ln/foo/foo/bar/。。您可以根据需要删除或重新链接。如今,它由文件系统严格执行
显然,/tmp/。。链接到/,这不会因为您跟随符号链接到达/tmp而改变。vi./bashrc将编辑bashrc,而不是.bashrc。文件以a开头。如果*nix被隐藏,使用ls-a或ls-la来显示它们。输入错误,应该是vi.bashrc。