web-dev-qa-db-ja.com

シンボリックリンクのエイリアスと同等ですか?

私は自分のホームフォルダーにあるいくつかのディレクトリを頻繁に移動し、それらを書くことに飽き飽きしている必要があることに気づきました。従来はシンボリックリンクでした、より迅速なアプローチが必要です。

ただし、ホームディレクトリを多数のシンボリックリンクで乱雑にしたくありません。 ~/links/ディレクトリと混乱itはシンボリックリンクですが、それでも醜いです。さらに、現在のディレクトリにジャンプするように毎日変更する(.bashrcで定義されている)シンボリックリンクを作成したい場合があります。

シンボリックリンクを効果的にエイリアス化して、クイックナビゲーション用のリンクとして認識されるものを作成する方法はありますが、ホームディレクトリのlsを実行しても実際には表示されず、持続しません現在のセッションを超えていますか?

18
dsollen

シェルエイリアスには、それらに対して(一部の)名前補完を実行できる機能があります(通常、 tab)。または、CDPATH機能を使用することもできます。これは、「最近」(過去5〜6年以内)に名前補完をサポートするように改善されています。これでうまくいく場合は、入力するのがディレクトリのニーモニックではなく実際のディレクトリ名であるという利点があります。

Bashのマニュアルによると

CDPATH
cd組み込みコマンドの検索パスとして使用される、コロンで区切られたディレクトリのリスト。

参考文献:

18
Thomas Dickey

頻繁に使用するが毎日変更しないディレクトリの場合、.bashrcファイルにいくつかのaliasコマンドを含めることもできます。

alias cdo="cd /u01/app/Oracle"
alias cdw="cd /var/www/html" 

友人はそれらの約50を持っています。私は一握りです。早くて簡単。ただ

cdo

ディレクトリを/ u01/app/Oracleに変更します

16
Mark Stewart

pushdpopdをお勧めします。

私は個人的に、複数のディレクトリが関係しているときに、開発作業やソースコードの読み取りを行うときに便利だと思います。

それらはスタック構造/ LIFOを効果的に実装し、ディレクトリをプッシュし(pushd)、次のPOPディレクトリコマンド(popd)がそれを取得します。

したがって、ディレクトリ内にいる場合は、次のようにします。

pushd .

そして、それを取得する必要があるときは、

popd

複数のpushd(s)を実行し、後で対応するpopd(s)を実行して、ディレクトリに戻ることができます。

ここにリンクを残します。

http://www.eriwen.com/bash/pushd-and-popd/

7
Rui F Ribeiro

それらを変数として~/.bashrcに置くだけで、あとは$だけです。

$ cat ~/.bashrc
if [ "$PS1" ]
then
    export myproj=~/todays/fancy/project
fi

$ cd $myproj
3
Ewan Mellor

明白な答えはvariablesであり、ファイルシステムのシンボリックリンクと同様に、シェルのシンボリックなものは他のものを表します。

path/to/project $ project=$PWD
path/to/project $ cd $elsewhere   # Previously created
path/to/elsewhere $ cd $project
path/to/project $ logout          # Variables gone, as required

適切なシェルでは、 Tab さらに役立つ変数名の補完。

3
Kaz