Bashプロンプトは\w
エスケープシーケンスをサポートしています。
\w the current working directory, with $HOME abbreviated
with a tilde (uses the value of the PROMPT_DIRTRIM variable)
任意の文字列に対して同様の略語を取得する方法はありますか?つまり、HOME = / home / user1の場合、次のようなことを行う一般的なコマンドはありますか
/home/user1 → ~
/home/user1/a/1 → ~/a/1
/home/user2/b/2 → ~user2/b/2
/root → ~root
確かに、sedでsomethingいことを試すこともできますが、いずれにしても、私が望む結果が得られる可能性は低いです。:-)
この背後にある動機は、端末のタブのタイトルをできるだけ短くしたいということです。したがって、可能な場合は作業ディレクトリを省略します。
更新:満足のいく解決策が簡単に入手できるとは思えないので、物事を十分に高速に保ちたいので、今は簡単な
pwd | sed -e "s|/root|~root|" -e "s|/home/user1|~|
そしてルートのために似たようなもの。私はマシン上の唯一のユーザーであるため、これは現在多かれ少なかれ機能しています。誰かがmagical-tool-that-solves-all-problems
思い付く場合に備えて質問を公開しておきます(elispで書かれていないことが理想的です...)。
s|/home/user1|~|
変更されます/home/user17
し~7
。