如何永久删除鱼$ PATH的路径?

时间:2016-01-20 21:39:19

标签: linux shell fish

此问题已经提出,并在此处回答:https://superuser.com/a/940041/293429

但是,提供的解决方案:执行set -e PATH[<index-of-the-path-to-be-removed]仅适用于正在运行的实例,并且无法普遍有效。

执行该命令后,如果执行echo $PATH,则会再次发生先前删除的路径。

完全重置路径的一种方法是执行:set -U fish_user_paths,但我不清楚它的作用。

真正的诀窍是找出如何删除已手动添加的路径并使其全局可用 - 不仅仅是当前实例?

1 个答案:

答案 0 :(得分:4)

有两种方法可以做到这一点,哪一种方法有效取决于路径如何进入$ PATH。

可以通过例如将目录添加到$ PATH set PATH $PATH /some/dir。至少在默认情况下,PATH是一个全局变量,这意味着它是每个会话。这意味着要从$ PATH更改某些内容,要么将其从添加位置移除(因为它继承了它,可能在fish之外),或者将set -e调用放在〜/ .config / fish / config中。鱼,所以它会在每次开始时执行。

还有$ fish_user_paths,它是一个通用变量(意味着它在fish会话中携带相同的值并在它们之间同步)。在启动时以及修改fish_user_paths时,fish会将其添加到$ PATH。如果在此处添加了违规目录,请执行set -e fish_user_paths[index]一次(例如,在交互式会话中)。

set -e fish_user_paths会删除整个变量(虽然set -U fish_user_paths会清除它),这也会有效,但也会删除所有其他路径