すべてのディレクトリで使用できるシンボリックリンクを定義する方法


11

たとえばproject、ディレクトリをポイントするために使用できるようにシンボリックリンクを設定することは可能home/me/projectですか?これは、ファイルシステム内の場所とは無関係である必要があります。

私のようなコマンドを使用したいのですがcd projectnano project/file1.texなどを。

すべてのディレクトリへのシンボリックリンクを記述する必要がありますか?

回答:


15

ほとんどのシェルには、実行可能ファイルがで検索されるのと同じ方法で変更するディレクトリを検索できるCDPATH変数があります。cd$PATH

したがって、~/projectsディレクトリにシンボリックリンクを追加して実行するとCDPATH=~/projects、そこcd fooに移動することができます~/projects/foo

zshすれば、$varあなたが行うことができますパス含まれているcd ~varcdそのパスにします。その有用な部分は、プロンプトに%~それがプロンプトに反映されている場合です。

$ proj1=/usr/local proj2=/etc/apache2
$ PS1='%~$ '
$ cd ~proj1
~proj1$ cd ~proj2/sites-enabled
~proj2/sites-enabled$

を使用するとsetopt cdablevars、のcd proj1代わりに行うこともできますcd ~proj1


9

おそらくシンボリックリンクの代わりに変数を使用したいでしょう、例えば

export project=/home/me/project

その後

cd $project

または

vim $project/file

更新

peterphが指摘したように、これらを(事前定義された変数を含めて)組み合わせることもできます。たとえば、

export project=$HOME/project

1
またはさらに良いproject=$HOME/project...
peterph 2014

@peterph、またはさらに単純な~/project
ステファンChazelas

4
ではzsh、あなたも行うことができsetopt cdablevars、その後cd project
ステファンChazelas

@StephaneChazelas:それは良い点だと思います- zshおそらくそれは固有のものなので、別の答えとして追加できますか?
jmetz 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.