〜/ Documents是相对路径还是绝对路径?

白狼

这只是一个词汇问题,但一直在我脑海中回荡。

它来自LPIC准备书中的实践考试根据这本书的正确答案是,这~/Documents是相对目录,因为它是相对于主目录的。

但是,这本书包含错别字和错误的比率很高,所以我不能认为那里写的一切都是理所当然的。在这里我并不同意,因为对我而言,它~充当由Shell扩展为变量内容$HOME或当前用户主目录路径(参见参考资料man bash变量,因此实际路径/home/myuser/Documents确实是绝对目录。

即使是Wikipedia,这一次对我似乎也无济于事(即使似乎证实这本书是错误的):

无论当前工作目录如何,绝对路径或完整路径都指向文件系统中的同一位置。为此,它必须包含根目录。

相反,相对路径从某些给定的工作目录开始,从而避免了提供完整的绝对路径。

再次重申,我不同意:根据此定义,/opt/kde3/bin/../lib不依赖于当前工作目录的路径应该是绝对路径,但是我目前对此的理解与本书的作者相符,从而使该路径成为相对路径。

快速的Web搜索只是增加了我的无奈,根据韦氏词典

绝对路径-相对于根目录的路径。它的第一个字符必须是路径名分隔符。

那么$HOME/Documents,甚至$HOME不被认为是绝对目录?还是这个定义暗含变量扩展?外壳的~特征如何?我可以在某处找到相对目录和绝对目录的可靠定义吗?我一路走错了吗?

彼得·科德斯

如果作者试图通过将文字字符串(不带外壳扩展名)作为路径来吸引您,那么它就是相对路径(mkdir -p './~/Documents')。否则:


这是绝对路径,因为解析它并不依赖于进程的当前工作目录。相对路径始终表示相对于流程的工作目录。或在符号链接目标的情况下,相对于符号链接的位置。gcc -> gcc-5.2gcc -> /usr/bin/gcc-5.2)。这对于NFS挂载和其他情况下很重要,在这些情况下,您可以通过不同的绝对路径到达同一符号链接。例如

/net/tesla/home/peter/foo -> bar  # always works from other machines

/net/tesla/home/peter/foo -> /home/peter/bar  # references my home dir on the local machine, not tesla.

Debian有时会将符号链接安装到../../doc/whatever/whatever,而不是绝对符号链接目标,因此,当NFS挂载在其他位置或查看chroot而不使用它时,它会起作用chroot(8)

每个Unix进程都有自己的cwd。pwd命令仅用于打印它。

有关使用POSIX系统调用更改目录的更多信息,请参见:http : //pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html


就像其他人都说过的那样,~在路径用于任何事物之前它会被外壳扩展。使用~/bin/myprog在shell脚本将使得针对不同用户的工作方式不同。~/bin/foo之间的区别在于/home/peter/bin/foo,其中一个已对位置进行了硬编码,而另一个已对其进行了参数化。~版本称为相对路径是错误的(IMO)

谈论事物“相对于环境变量”只是令人困惑。在您使用它们的上下文中,使用具有特定技术含义的术语的不同英语含义是不好的做法。

在损坏的系统上,使用HOME=a/relative/path~/foo将扩展为相对路径。这根本不是一个可用的设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查路径是绝对路径还是相对路径

来自分类Dev

Java Nio相对路径的绝对路径

来自分类Dev

如何从绝对路径走向相对路径?

来自分类Dev

结合绝对路径和相对路径

来自分类Dev

从绝对路径到相对路径

来自分类Dev

绝对路径被视为相对路径

来自分类Dev

从相对路径获取绝对路径

来自分类Dev

相对路径与绝对路径Java

来自分类Dev

根据绝对路径查找相对路径

来自分类Dev

Webpack 相对路径 vs 绝对路径

来自分类Dev

Android.mk相对路径还是绝对路径?

来自分类Dev

检查Shell脚本$ 1是绝对路径还是相对路径

来自分类Dev

如何在PowerShell中基于相对路径或绝对路径获取绝对路径?

来自分类Dev

Shell脚本应该在绝对路径还是相对路径下工作?

来自分类Dev

从绝对路径+相对或绝对路径创建新的绝对路径

来自分类Dev

从绝对路径+相对或绝对路径创建新的绝对路径

来自分类Dev

在Mac和Linux上将相对路径转换为绝对路径

来自分类Dev

Express中存在绝对路径和相对路径的困难

来自分类Dev

JSP包含指令,jsp:include操作,相对路径与绝对路径

来自分类Dev

Git rm在符号链接的相对路径上工作,但不是绝对路径

来自分类Dev

MSBuild:给定绝对路径,如何获取文件的相对路径?

来自分类Dev

JavaScript中相对路径和绝对路径之间的区别

来自分类Dev

将绝对路径转换为相对路径

来自分类Dev

NodeJS-将相对路径转换为绝对路径

来自分类Dev

PHP require_once绝对路径与相对路径(不起作用)

来自分类Dev

给定两个绝对路径,如何找到相对路径?

来自分类Dev

命令行上的java相对路径与绝对路径

来自分类Dev

如何使用相对路径而不是绝对路径

来自分类Dev

使Struts2 redirectAction使用相对路径而不是绝对路径

Related 相关文章

  1. 1

    如何检查路径是绝对路径还是相对路径

  2. 2

    Java Nio相对路径的绝对路径

  3. 3

    如何从绝对路径走向相对路径?

  4. 4

    结合绝对路径和相对路径

  5. 5

    从绝对路径到相对路径

  6. 6

    绝对路径被视为相对路径

  7. 7

    从相对路径获取绝对路径

  8. 8

    相对路径与绝对路径Java

  9. 9

    根据绝对路径查找相对路径

  10. 10

    Webpack 相对路径 vs 绝对路径

  11. 11

    Android.mk相对路径还是绝对路径?

  12. 12

    检查Shell脚本$ 1是绝对路径还是相对路径

  13. 13

    如何在PowerShell中基于相对路径或绝对路径获取绝对路径?

  14. 14

    Shell脚本应该在绝对路径还是相对路径下工作?

  15. 15

    从绝对路径+相对或绝对路径创建新的绝对路径

  16. 16

    从绝对路径+相对或绝对路径创建新的绝对路径

  17. 17

    在Mac和Linux上将相对路径转换为绝对路径

  18. 18

    Express中存在绝对路径和相对路径的困难

  19. 19

    JSP包含指令,jsp:include操作,相对路径与绝对路径

  20. 20

    Git rm在符号链接的相对路径上工作,但不是绝对路径

  21. 21

    MSBuild:给定绝对路径,如何获取文件的相对路径?

  22. 22

    JavaScript中相对路径和绝对路径之间的区别

  23. 23

    将绝对路径转换为相对路径

  24. 24

    NodeJS-将相对路径转换为绝对路径

  25. 25

    PHP require_once绝对路径与相对路径(不起作用)

  26. 26

    给定两个绝对路径,如何找到相对路径?

  27. 27

    命令行上的java相对路径与绝对路径

  28. 28

    如何使用相对路径而不是绝对路径

  29. 29

    使Struts2 redirectAction使用相对路径而不是绝对路径

热门标签

归档