带有 ls, mv 的符号链接:强制函数使用“逻辑”地址(记住原始路径)

mrt*_*iyo 6 ls bash cp cd-command symlink

似乎对于许多在符号链接上操作的基本功能,默认使用物理路径。但是, cd 工作正常。当进入符号链接时, cd 会记住我来自哪里,因此它使用符号链接的逻辑地址(请参阅相关文章以获取示例:符号链接和 cd)。

像 ls 这样的函数只是部分地以这种方式工作。如果我通过点击选项卡 ($ ls ../ {tab}) 列出目录内容,它将列出符号链接所在目录的内容,但如果执行命令 ($ ls ../ {enter}) 目录内容列表来自物理路径。有没有办法让 ls、mv、rm 等命令像 cd 一样操作并记住符号链接的逻辑路径?

感谢您的任何建议。

Kyl*_*nes 9

正是 shell 提供了一种错觉,即指向目录的符号链接是根植于符号链接位置的真实目录。 cd必然是 shell 内置函数,制表符补全也是 shell 执行的一个功能。由于cd由 shell 执行,它知道符号链接并可以保持错觉。大多数 Unix 命令不是由 shell 实现的,因此无法知道您是否通过符号链接到达当前目录。由于这些命令(lsmvrm等)无法了解符号链接,因此它们无法保持这种错觉。