複数のハードドライブにまたがるディレクトリを簡単にナビゲートする方法を探して、端末にショートカットと同じ機能を設定したいと思います。
Windowsは、mklink
そのディレクトリに移動するためのシンボリックリンクを作成するか、現在のファイルパスの末尾に場所を追加する接続を作成することによってこれを行います。
これは実際にナビゲーションに関するものなので、リンクなどである必要はありません。おそらくcd $myDir
(好ましくは)いくつかの環境変数を設定できます。
これは可能ですか、それともカタログをよりよく学ぶべきですか?
ベストアンサー1
ファイルシステムのレイアウトに慣れるのは、有能なユーザーになるための一部です。この目標のために費やす時間は無駄な時間ではありません。ただし、これによりファイルシステムをより簡単に移動できます。 Linux/UNIX では、各「ドライブ」(構成に応じて物理的または論理的)が表示される Windows とは異なり、ストレージを構成するデバイスの数に関係なく、ファイルシステムは単一のツリーとして表示されます。デフォルト設定は独立したツリーで構成されています。
この問題を解決する方法はいくつかあります。もちろん、それぞれ異なるディレクトリを指す複数のシェル変数を設定できます。コマンドを実行すると、cd $SomeDir
シェルは変数を$SomeDir
展開し、コマンドラインでその変数を置き換えて、最後の実行時に変数に保存cd
されたディレクトリ名を受け取ります。これはおそらく最も簡単な方法です。シェル変数を絶対パスで埋めると、ファイルシステムのどこでも動作します。
ターゲットディレクトリへのシンボリックリンクも使用できます(ほとんどのUNIXはディレクトリへのハードリンクをサポートしていません)。ただし、これを機能させるには、カーネルがシンボリックリンクを確認できるように、パスパラメータに十分な情報を提供する必要があります。つまり、シンボリックリンクへの絶対パス、またはカーネルがリンクをたどるようにリンクを見つけるのに十分な相対パスを提供する必要があります。
シェルによって使用可能または使用不可になる別の方法は、シェルのcdpath
機能を使用することです。これはbash
、zsh
およびtcsh
他の間違いなくサポートされます。この手法を使用するCDPATH
と、実行時にコロンで区切られたディレクトリ名のリストに環境変数を設定できますcd
。ディレクトリの1つ$CDPATH
に渡されたサブディレクトリと名前が一致するサブディレクトリが含まれており、システムにディレクトリがある場合は、コマンドを実行して内容を探し、呼び出しサブディレクトリを探し、存在する場合は現在の作業ディレクトリをそのディレクトリに変更します。します。シェルは指定された順序でディレクトリを検索するので、引数として渡したサブディレクトリを含むディレクトリが複数ある場合、cd
CDPATH
/usr/local
/usr/local/www
cd www
$CDPATH
/usr/local
www
/usr/local/www
$CDPATH
$CDPATH
cd
最初のゲームで勝利してください。。これは私があまりにも頻繁に問題に遭遇し、もはや私たちではありませんcdpath
。