我$PATH通过运行向系统路径()添加了一个目录路径,
export PATH=$PATH:/home/avinash/Desktop/raj
Run Code Online (Sandbox Code Playgroud)
现在我的路径看起来像这样,
$回声 $PATH /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games :/家/avinash/桌面/raj
我想/home/avinash/Desktop/raj通过使用命令从系统路径变量中删除(就像 export 命令在添加路径时所做的那样)。
Rad*_*anu 20
在您当前的 shell(您当前的 gnome-terminal 会话)中,您可以使用以下命令执行此操作:
export PATH=${PATH%:/home/avinash/Desktop/raj}
Run Code Online (Sandbox Code Playgroud)
一般来说:
${string%substring}
Run Code Online (Sandbox Code Playgroud)
$substring从 的后面删除最短的匹配项$string。
查看字符串操作以获取更多信息。
Oli*_*Oli 15
运行export PATH=$PATH:/...不会在PATH系统范围内设置。它只是一个shell变量。启动一个新的 shell 和BOOM,它不见了。显然,如果您已将其添加到~/.bashrc(或其他环境引导程序文件)中,则必须还原该更改,但这听起来不像您的问题。
如果你不想启动一个新的 shell,你可以通过手动删除它来设置它,使用:
export PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Run Code Online (Sandbox Code Playgroud)
如果您将该export语句放在任何 shell 启动文件中,例如~/.bashrc,您可以在终端中使用以下命令,
#remove the export statement from the file.
sed -i 's#export PATH=$PATH:/home/avinash/Desktop/raj##g' ~/.bashrc
#source ~/.bashrc
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
它将从路径中删除该文件夹。
如果您已从终端导出路径
只要您在该 shell 中,该文件夹就会位于路径中。要覆盖路径,您必须分配新路径。正如奥利在另一个答案中已经提到的那样。
您可以使用以下命令设置旧路径
export PATH=`echo ${PATH/\:\/home\/avinash\/Desktop\/raj/}`
Run Code Online (Sandbox Code Playgroud)
或者,简单地说
export PATH=${PATH/':/home/avinash/Desktop/raj'/}
Run Code Online (Sandbox Code Playgroud)
这是子字符串替换,
${string/substring/replacement}
Run Code Online (Sandbox Code Playgroud)