簡単なアクセスのためのディレクトリへのシンボリックリンク:.bashrc、usr / local / bin、その他?

簡単なアクセスのためのディレクトリへのシンボリックリンク:.bashrc、usr / local / bin、その他?

(ミント19.1、Ubuntu 18.04ベース)

頻繁にアクセスするディレクトリがあり、パスが非常に長いです。入力に疲れたので、このディレクトリに簡単に移動できるようにしたいです。私が考えることができる最も簡単な方法は、.bashrc次のエイリアスを作成することです。

alias goto_project="cd /projectdir"

これは機能しますが、使用したい場合にのみ機能しますcd。私は、パスにシンボリックリンクを追加して(ファイルをディレクトリに移動)などのコマンドやグローバル呼び出しを/projectdir使用できるようにすることがより一般的だと思います。私はディレクトリのシンボリックリンクを(私が使用した)に入れてみました。しかし、これは期待どおりに機能しないようです。たとえば、呼び出しは結果を生成しません。cd projectmv file projectrsync/usr/local/binln -s /projectdir /usr/local/bin/projectscd projectwhich projects

このアプローチは可能ではありませんか?おそらく、これが紛争を引き起こす可能性があるからでしょうか?

答え1

エイリアスはコマンド用です。必要なのは、長いディレクトリ名を参照する単純な変数です。 ~/.bashrcに次の内容を追加してください。

shortdir="/super/long/directory/name"

ls "$shortdir"、orのようなコマンドを使用すると、目的のdu "$shortdir"結果を得ることができます。

答え2

Bashでは変数がありますCDPATH。これに関連して、以下の声明があります。

CDPATH cd コマンドの検索パス。これは、シェルがcdコマンドで指定されたターゲットディレクトリを見つけるためのコロンで区切られたディレクトリのリストです。例の値は「.:~:/usr」です。

そのような場合は、階層内の任意の場所にaを/my/super/very/long/path/to/projectdir入力すると、特定の項目に移動します。/my/super/very/long/path/to/CDPATHcd projectdir/my/super/very/long/path/to/projectdir

欠点(衝突の可能性)がありますが、実際に保存されている場所に関係なく名前だけを知っている場合(または実際にオートコンプリート機能を使用して)切り替えることができるように、すべてのgit作業ツリーの上部を指すときに使用します。 。どこ。

もちろん、これは問題の「簡単なCD方法」の部分だけを解決することであり、すべてのコマンドが機能するときに任意の象徴的な方法で名前を参照する全体的な問題は解決しません。

また、一度見たいと思うかもしれませんpushd/popd状況によっては役に立つかもしれません。

答え3

シンボリックリンクを作成すると、リンクが作成された場所からそのディレクトリにアクセスできます。たとえば、あなたの場合、プロジェクトパスの長さに応じて、次の操作を行うことでいくつかのキーストロークを節約できますcd /usr/local/bin/projectscd /projectdir

たとえば、cd /my/super/very/long/path/to/projectdir以前cd ~/projectdirln -s /my/super/very/long/path/to/projectdir ~/projects

これを除いて、ajgringo619ソリューションそれが私の心に浮かぶ唯一のものです。

関連情報