シンボリックリンクで動作する多くの基本機能の場合、デフォルトでは物理パスが使用されているようです。しかし、CDはうまくいきます。シンボリックリンクを入力すると、cdは私がどこから来たのかを覚えているので、シンボリックリンクの論理アドレスを使用します(例については関連記事を参照してください。シンボリックリンクとCD)。
lsのような関数は、部分的にのみこのように動作します。タブ ($ls ../{tab}) をクリックしてディレクトリの内容を一覧表示すると、シンボリックリンクを含むディレクトリの内容が一覧表示されますが ($ls ../{enter}) コマンドを実行すると、ディレクトリの内容の一覧は実際のパスから出てきます。 ls、mv、rmなどのコマンドがcdのように機能し、シンボリックリンクの論理パスを記憶させる方法はありますか?
どんなアドバイスもありがとうございます。
ベストアンサー1
ディレクトリを指すシンボリックリンクがシンボリックリンクの場所に根ざした物理ディレクトリであるという錯覚を提供するのはシェルです。 cd
シェルに組み込まれている機能である必要があり、タブ補完もシェルで実行される機能です。シェルによって実行されるので、cd
シンボリックリンクを認識し、幻想を維持することができます。ほとんどのUnixコマンドはシェルで実装されていないため、現在のディレクトリに到達するためにシンボリックリンクを通過したかどうかを知る方法はありません。これらのコマンド(ls
、など)はシンボリックリンクをmv
理解rm
できないため、これらの幻想を維持することはできません。