cd ~/scripts
。これは私の家のscriptsディレクトリに移動します。これと同様に、cd xxx/mywork
->が「mywork」ディレクトリ/ home/work/softwareに移動するように、他のディレクトリに入ることができる「エイリアス」のような設定が必要です。コマンドでxxx
を/home/work/software
に設定したい。
使用しているシェルはわかりませんが、zsh
にはこれに対するサポートが組み込まれています。それは 名前付きディレクトリ と呼ばれます。
これを設定するには、次のようなコードを.zshrcに追加します。
mywork=/home/work/software #set variable
: ~mywork #Reference variable with a tilde in a no-op statement
次に、次のようにコマンドラインで使用できます。
$ cd ~mywork
またはこれ:
$ cd ~mywork/sub/directories
これを設定する構文がどのように/なぜ機能するかについての完全な説明はここにあります: 名前付きディレクトリ 。
CDPATH
を設定すると、求めている内容に近づくことができるようです。
cd
cd [-L|[-P [-e]] [-@] [directory]
Change the current working directory to directory. [...] If
the Shell variable CDPATH exists, it is used as a search path:
each directory name in CDPATH is searched for directory, with
alternative directory names in CDPATH separated by a colon
(‘:’). If directory begins with a slash, CDPATH is not used.
このように、CDPATH
に/home/work
がある場合、cd software
は/home/work/software
に移動します。
特定の質問に近いものが必要な場合は、シンボリックリンクを使用してディレクトリを設定し、そのディレクトリを配置する方がよいでしょう。例:mkdir ~/.links
、次にCDPATH=~/.links
、次に~/.links
内に、mywork
から/home/work/software
へのシンボリックリンクを作成します。次に、cd mywork
がそこに到達するはずです。
これは正確にはあなたが求めているものではありませんが、 [〜#〜] z [〜#〜] (bash
とzsh
)これは、「頻度」に基づいて最も使用されているディレクトリを追跡し、ジャンプできるようにします。
あなたの例では、次のようになります。
z software
そしてそれはおそらくディレクトリを次のように変更するでしょう:
/home/work/software
私はここで提案に従いました: http://jeroenjanssens.com/2013/08/16/quickly-navigate-your-filesystem-from-the-command-line.html そして決して振り返りませんでした。このユーティリティの鍵は、「cd」がディレクトリへのシンボリックリンクと、次のようなシェル関数をたどることです。
export JJPATH=$HOME/.jjlinks
function jj {
cd -P "$JJPATH/$1" 2>/dev/null || echo "No such link: $1"
}
ディレクトリ$ HOME/.jjlinksに、必要なすべてのシンボリックリンクを隠しておきます。あなたが現在あなた自身を見つけている深くネストされたディレクトリへのそのようなリンクを作るための他の単純なシェル関数があります。
私はこの提案の作者に敬意を表して「jj」を使用しました(それに加えて、ほとんどの場合、右手の人差し指がここにあります)。
jj pj7
すぐにディレクトリを「〜/ projects/sequence/hepatocyte/seq_783/bin /」に変更します