添加到路径上,以便到处都可以使用该文件 - bash



我正在尝试在我的路径中添加多个目录,以便该目录中的文件和子目录在我的命令提示符中可以使用。

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/username/OpenFOAM/OpenFOAM-2.1.0/etc/bashrc:/usr/share/texmf-texlive/tex/latex:/etc/crontab:/home/username/Research/Dissertation/wigner/ic/L=lambda:/home/username/Research/Dissertation/wigner/ic/L=2lambda:/home/username/Research/Dissertation/wigner/ic/L=3lambda:/home/username/Research/Dissertation/wigner/ic

附加follwing

 /home/username/Research/Dissertation/wigner/ic/L=lambda:/home/username/Research/Dissertation/wigner/ic/L=2lambda:/home/username/Research/Dissertation/wigner/ic/L=3lambda:/home/username/Research/Dissertation/wigner/ic

到我的.bashrcexport PATH行并采购它无济于事。我究竟做错了什么?当我尝试从/home/username/Research/Dissertation/wigner/ic访问文件时,我不能。

我在这里阅读了几篇文章,但它们根本没有帮助。我是否缺少结肠,半符号,美元符号?

听起来您可能正在误解$PATH的目的。$PATH仅告诉BASH在哪里寻找可执行文件和脚本。例如,此命令:

foo bar.txt

Will(通常)搜索$PATH查看名为foo的可执行文件,这些命令:

bash foo.sh
. foo.sh

将(通常)(通常)搜索$PATH查找foo.sh,除非当前目录中有foo.sh;但是这些命令:

cat foo.txt
vi foo.txt
less foo.txt

Will 不是搜索$PATH查找foo.txt

此外,您可以写出"该目录中的文件及其子目录中的文件",但是$PATH对子目录没有用。如果可执行 - 名称包含/,则BASH将永远不会搜索$PATH。例如,此命令:

foo/bar baz.txt

将运行./foo/bar,并且Will 搜索 $PATH for foo


编辑为添加:,因此,您可以做什么。。。

最终,您需要在montage命令中包含目录信息:

cd /home/username/Research/Dissertation/wigner/ic
montage -geometry +4+4 L=3lambda/three.jpg L=2lambda/two.png output.jpg

如果目录信息每次都无法键入,则可以在.bashrc中设置自己的变量,然后明确使用它。例如,.bashrc可能具有:

export IC=/home/username/Research/Dissertation/wigner/ic
export ICL=$IC/L=lambda
export ICL2=$IC/L=lambda2
export ICL3=$IC/L=lambda3

然后您可以写:

montage -geometry +4+4 $ICL3/three.jpg $ICL2/two.png output.jpg

如果您甚至不想记住给定文件所在的子目录,则可以使用FileGlob:

export IC=/home/username/Research/Dissertation/wigner/ic
export ICLs=$IC/L=lambda*

和写:

montage -geometry +4+4 $ICLs/three.jpg $ICLs/two.png output.jpg

让外壳为您找到它。(但是,当然,只有在不同的子目录中的文件之间没有名称冲突的情况下才能正常工作。)

您可以在.bashrc中定义一些变量:

H="/home/username/Research/Dissertation/wigner/ic"    
oneLam="$H/L=lambda"
twoLam="$H/L=2lambda"
threeLam="$H/L=3lambda"

,可以参考文件可以从任何地方完成:

user@box:/some/horrendously/deep/path/$ vi $twoLam/some_file.txt

相关内容

  • 没有找到相关文章

最新更新