私は自分のホームフォルダーにあるいくつかのディレクトリを頻繁に移動し、それらを書くことに飽き飽きしている必要があることに気づきました。従来はシンボリックリンクでした、より迅速なアプローチが必要です。
ただし、ホームディレクトリを多数のシンボリックリンクで乱雑にしたくありません。 ~/links/
ディレクトリと混乱itはシンボリックリンクですが、それでも醜いです。さらに、現在のディレクトリにジャンプするように毎日変更する(.bashrcで定義されている)シンボリックリンクを作成したい場合があります。
シンボリックリンクを効果的にエイリアス化して、クイックナビゲーション用のリンクとして認識されるものを作成する方法はありますが、ホームディレクトリのls
を実行しても実際には表示されず、持続しません現在のセッションを超えていますか?
シェルエイリアスには、それらに対して(一部の)名前補完を実行できる機能があります(通常、 tab)。または、CDPATH
機能を使用することもできます。これは、「最近」(過去5〜6年以内)に名前補完をサポートするように改善されています。これでうまくいく場合は、入力するのがディレクトリのニーモニックではなく実際のディレクトリ名であるという利点があります。
Bashのマニュアルによると
CDPATH
cd
組み込みコマンドの検索パスとして使用される、コロンで区切られたディレクトリのリスト。
参考文献:
頻繁に使用するが毎日変更しないディレクトリの場合、.bashrc
ファイルにいくつかのalias
コマンドを含めることもできます。
alias cdo="cd /u01/app/Oracle"
alias cdw="cd /var/www/html"
友人はそれらの約50を持っています。私は一握りです。早くて簡単。ただ
cdo
ディレクトリを/ u01/app/Oracleに変更します
pushd
とpopd
をお勧めします。
私は個人的に、複数のディレクトリが関係しているときに、開発作業やソースコードの読み取りを行うときに便利だと思います。
それらはスタック構造/ LIFOを効果的に実装し、ディレクトリをプッシュし(pushd
)、次のPOPディレクトリコマンド(popd
)がそれを取得します。
したがって、ディレクトリ内にいる場合は、次のようにします。
pushd .
そして、それを取得する必要があるときは、
popd
複数のpushd
(s)を実行し、後で対応するpopd
(s)を実行して、ディレクトリに戻ることができます。
ここにリンクを残します。
それらを変数として~/.bashrc
に置くだけで、あとは$
だけです。
$ cat ~/.bashrc
if [ "$PS1" ]
then
export myproj=~/todays/fancy/project
fi
$ cd $myproj
明白な答えは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 さらに役立つ変数名の補完。