複数のハードドライブにまたがるディレクトリに移動する簡単な方法を探しており、ターミナル内のショートカットと同等のものを設定したいと考えています。
Windowsでは、mklink
を使用してこれを実現し、ディレクトリにジャンプするシンボリックリンク、または現在のファイルパスの末尾に場所を追加するジャンクションを作成します。
これは本当にナビゲーションに関するものなので、リンクや何かである必要もありません。おそらく、cd $myDir
(推奨)。
そのようなことは可能ですか、それとも本当に自分のディレクトリをよりよく学ぶ必要があるのですか?
ファイルシステムのレイアウトに慣れることは、すべて有能なユーザーになることの一部です。その目的を念頭に置いて過ごす時間は、時間の浪費ではありません。ただし、そうは言っても、実際にファイルシステム内を移動しやすくすることができます。 Linux/UNIXでは、各「ドライブ」(構成に応じて物理ドライブまたは論理ドライブ)が表されるWindowsとは異なり、ストレージを構成するデバイスの数に関係なく、ファイルシステムは単一のツリーとして表示されます。独立したツリーによるデフォルト設定。
この問題に対処する方法はたくさんあります。それぞれが異なるディレクトリを指す一連のシェル変数を設定することは確かに可能です。 cd $SomeDir
を発行すると、シェルは変数$SomeDir
を展開してコマンドラインで置き換え、最終的に実行されると、cd
が変数に格納されているディレクトリの名前を受け取ります。これはおそらく最も簡単な方法であり、シェル変数に絶対パスを設定すると、ファイルシステムのどこからでも機能するはずです。
ターゲットディレクトリへのシンボリックリンクを使用することもできます(ディレクトリへのハードリンクは、ほとんどのUNIXではサポートされていません)。ただし、これを有効にするには、カーネルがシンボリックリンクを解決できるように、パス引数に十分な情報を指定する必要があります。つまり、シンボリックリンクへの絶対パス、またはカーネルがリンクを検出できるようにするための十分な相対パスを指定する必要があるため、リンクをたどることができます。
シェルによっては、使用できるかどうかにかかわらず、シェルのcdpath
機能を使用する方法もあります。これはbash
、zsh
、tcsh
などでサポートされています。この手法では、環境変数CDPATH
をコロンで区切られたディレクトリ名のリストに設定します。これは、cd
を実行したときに検索されます。 $CDPATH
上のディレクトリの1つに、cd
に渡された名前と一致する名前のサブディレクトリが含まれている場合、シェルは現在の作業ディレクトリを変更します。たとえば、CDPATH
に/usr/local
が含まれていて、システムにディレクトリ/usr/local/www
がある場合、cd www
を発行すると$CDPATH
の内容が検索され、 www
と呼ばれる/usr/local
のサブディレクトリを検索し、存在する場合は、現在の作業ディレクトリを/usr/local/www
に変更します。シェルは$CDPATH
内のディレクトリを指定された順序で検索するため、$CDPATH
に、cd
に引数として渡すサブディレクトリを含む複数のディレクトリが含まれている場合、最初の試合が勝つ。これは、私をもはや_cdpath
から失うほど頻繁に私を捕らえました。
次のように、いくつかのエイリアスを設定できます。
$ alias abc="cd /home/user/Desktop/Folder"
これらを長期間保存するには、それらを.bashrcファイルに追加します。
これは、探しているナビゲーションだけの場合に機能します。ただし、上記の「abc」は、スクリプトを作成する場合には使用できません。
個人的には、長期的には、ディレクトリ構造[の関連部分]を覚えて覚えるのも簡単だと思います。エイリアスが多すぎると、覚えておくことが多くなります。エイリアスは、時間内に使用する必要がある別のコンピュータでは機能しません。
zユーティリティ- https://github.com/rupa/z をお勧めします(これはjという名前の別のユーティリティ。
zが行うことは、シェルのcd
関数をオーバーライドして、アクセスするすべてのディレクトリをログに記録するという副作用を追加することです。これらのディレクトリは、ファイル~/.z
に「frecency」の降順で格納されているため、より頻繁に、より最近アクセスされたディレクトリはより高く表示されます。
次に、cd
をしばらく使用してこのインデックスを作成した後、新しいz $DIR
コマンドを使用して、$DIR
で最も高いサブストリング~/.z
を含むディレクトリにジャンプできます。