Linux bash 中波浪号的含义(不是主目录)

2024-04-23

首先,我知道~/是主目录。 CD 至~ or ~/带我到主目录。

然而,cd ~X带我去一个特别的地方,在那里X似乎是什么。

在 bash 中,如果我点击“cd ~“然后点击选项卡,它会显示一堆可能的~X选项如~mail and ~postgres and ~ssh。转到这些文件夹并执行pwd显示这些文件夹不在主目录中;他们到处都是。

他们不是别名。我查过了。 他们不是env.变量,否则他们需要一个$.

是什么设置了这些链接?我在哪里可以找到这些链接的设置位置?


这是一个名为“波形符扩展 http://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html“。这是 shell 的功能,而不是操作系统的功能。例如,使用 csh 会得到不同的行为。

回答有关信息来自何处的问题:您的主目录来自变量$HOME(无论您在那里存储什么),而其他用户的家庭是使用实时检索的getpwent() http://www.kernel.org/doc/man-pages/online/pages/man3/getpwent.3.html。该功能通常由NSS http://en.wikipedia.org/wiki/Name_Service_Switch;所以默认情况下值被拉出/etc/passwd,但可以将其配置为使用任何所需的源(例如 NIS、LDAP 或 SQL 数据库)检索信息。

波形符扩展不仅仅是主目录查找。总结如下:

~              $HOME
~fred          (freds home dir)

~+             $PWD       (your current working directory)
~-             $OLDPWD    (your previous directory)
~1             `dirs +1`
~2             `dirs +2`
~-1            `dirs -1`

dirs and ~1, ~-1等,与pushd and popd.

编辑添加:

As 肖恩·布莱特 https://stackoverflow.com/users/21926在评论中指出,有关主目录的基线波形符行为被编为标准行为符合 POSIX 标准 https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_01贝壳。此外,词表达式() https://man7.org/linux/man-pages/man3/wordexp.3.html指定 C API 函数来实现此行为。但显然,请谨慎使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux bash 中波浪号的含义(不是主目录) 的相关文章

随机推荐

  • 使用 nginx 代理时在 RStudio 中运行闪亮的应用程序

    我正在尝试使用通过 nginx 代理的 RStudio 服务器来开发一个闪亮的应用程序 当我使用 RStudio 而不是服务器 来运行闪亮的应用程序时 一切正常 但是 当我通过代理 RStudio 运行时 该应用程序出现在 查看器 窗格中
  • Python pickle 不是一对一的:不同的 pickle 给出相同的对象

    有人可以解释一下吗 pickle loads b x80 x03X x01 x00 x00 x00 q x00h x00 x86q x01 pickle loads b x80 x03X x01 x00 x00 x00 q x00X x01
  • Android 猴子跑步脚本

    我正在尝试通过 Monkey runner 命令提示符执行示例 python 程序 但它抛出错误 Can t open specified script file Usage monkeyrunner options SCRIPT FILE
  • 如何解析 WordOpenXML 输出中的 mathML?

    我只想读取用于生成方程的 xml 这是我通过使用获得的Paragraph Range WordOpenXML 但用于方程的部分并不符合MathML我发现Equation微软的MathML 我是否需要使用一些特殊的转换器来获取所需的 xml
  • For 循环有效,但 For Each 无效。为什么?

    在包含 forEach 循环的行上抛出了越界异常 但据我所知 这段代码没有任何问题 for 循环从 char 数组的元素 0 开始并循环直到到达最后一个元素 但是当我使用更长的 for 循环尝试此代码时 即 for int i 0 i lt
  • 更改 maven pom.xml 中传递依赖项的版本

    我一直在尝试覆盖我的一个项目中的传递依赖版本 我在 github 上找到了以下示例项目来进行实验 https github com Richou swagger codegen maven plugin https github com R
  • 求 2 次幂的算法

    我找到了一个小算法来确定一个数字是否是 2 的幂 但没有解释它是如何工作的 到底发生了什么 var potence n gt n n n 1 for var i 2 i lt 16 i if potence i console log i
  • Android ACTION_IMAGE_CAPTURE 与内存中的 EXTRA_OUTPUT

    当我打电话时用相机拍照时 File file new File getFilesDir getAbsolutePath myImage jpg Uri outputFileUri Uri fromFile file cameraIntent
  • $elemMatch 的 MongoDB 索引

    索引帮助页面位于http www mongodb org display DOCS Indexes http www mongodb org display DOCS Indexes没有提到 elemMatch 因为它说要在我的 2M 对象
  • iOS 11:大标题的 UINavigationBar 高度(模仿 Apple Music 应用)

    我试图模仿UINavigationBar由 Apple Music 应用程序使用 日期显示在大标题上方 我知道 Apple Music 应用程序不使用该标准UINavigationBar of ios11 questions tagged
  • 数据框中值之间的距离

    我有一个数据框 其中包含一系列虚拟变量 这些变量指示在另一个事件 a 之前发生的事件类型 e1 e2 我需要知道从类型 e1 和 e2 的每个事件到下一个事件 a 的索引值的距离 我尝试使用显示的数据进行演示 我已经研究了一些解决方案 包括
  • 管道和流程管理

    我正在开发一个用 C 实现的小型 shell tsh 这是一项作业 作业的一部分属于 PIPING 我必须将一个命令的输出通过管道传输到另一个命令 例如 ls l sort 当我运行 shell 时 我在其上执行的每个命令都由它生成的子进程
  • 没有河流的世界地图与 matplotlib / 底图?

    有没有一种方法可以用底图 或者没有底图 如果有其他方法的话 绘制大陆的边界 而不会出现那些烦人的河流 尤其是那段刚果河 连入海口都没有 令人不安 编辑 我打算进一步在地图上绘制数据 就像在底图库 http matplotlib org ba
  • 是否存在 Yahoogroups api?

    我们有 yahoogroups api 吗 我有一个 yahoo 群组 我希望每当我的 RSS 源更新时 都会自动向该群组发布一条消息 其中包含该帖子的链接 那可能吗 不 Yahoo 没有公共 API 团体 如果这样的 API 被开放 雅虎
  • Yii CDBCommand getText 显示 SQL 中的所有变量

    我正在使用 Yii 的 Yii app gt db gt createCommand 来构建 SQL 查询 为了查看 Yii 生成的 SQL 代码 我使用 CDBCommand 的 getText 方法 问题是 当我在包含参数的 SQL 代
  • 如何追踪僵尸对象崩溃?

    我的 iOS 应用程序发生了一些有线崩溃 并且它不是 100 可重现的 从崩溃日志中我可以看到无法识别的选择器 属性访问器 被发送到类型不正确的对象 很可能是僵尸 无论如何 XCode 中是否可以用来查看我是否正在尝试访问僵尸对象 Than
  • 如何存储(和使用)当前鼠标位置?

    存储当前鼠标位置 系统范围 然后 稍后 将鼠标放在该存储点的最佳方法是什么 NSEvent mouseLocation http developer apple com mac library documentation Cocoa Ref
  • Jsoup 解析和嵌套标签

    我正在学习 Jsoup 并有这个 HTML p Content p p Content p p Content p 我使用 Jsoup parse 和文档 select p 来捕获 内容 并且效果很好 但 p Content p p Con
  • Python向图像添加额外区域

    所以我有一张包含图像尺寸的表格 有多个不同尺寸的图像 66x66 400x400 等 我有一个图像示例 原始图像 其尺寸始终为 600x532 该图像上是一种产品 电视 PC 等 我必须调整该图像的大小 这不是问题 但如果我按照比例这样做
  • Linux bash 中波浪号的含义(不是主目录)

    首先 我知道 是主目录 CD 至 or 带我到主目录 然而 cd X带我去一个特别的地方 在那里X似乎是什么 在 bash 中 如果我点击 cd 然后点击选项卡 它会显示一堆可能的 X选项如 mail and postgres and ss