web-dev-qa-db-ja.com

端末に表示される現在のディレクトリパスを短くするにはどうすればよいですか?

私が深いディレクトリにいる場合は、次のようにしましょう:

~/Desktop/Dropbox/School/2017/C/A3/

次に、ターミナルを開くと、

bob@bob-ubuntu:~/Desktop/Dropbox/School/2017/C/A3/$

それからコマンドを書きます。それは非常に長く、ターミナルで私が書くすべての行は次の行に行きます。現在のディレクトリのみを表示する方法があるかどうかを知りたいです。表示したい:

bob@bob-ubuntu: A3/$

このようにすれば、非常にわかりやすく、いつでもpwdを実行してディレクトリ全体を確認できます。スペースが大きすぎるため、ターミナルでディレクトリ全体を表示したくありません。

22
K Split X

シェルスタートアップファイルのPS1を変更する必要があります(おそらく.bashrc)。

既に存在する場合は、その設定に\wが含まれます。これが作業ディレクトリになります。これを\W(大文字)に変更します。ログアウトして再度ログインするか、次の操作を行います。

. .bashrc

(またはあなたのファイルが何であれ)。

ない場合は、次のように追加します。

PS1='\u@\h: \W:\$'

.bashrcなどに。 bashマニュアルページでPS1を検索して、他のアイデアを入手してください。

注意してください; bashは、複数の初期化ファイルを使用できます。 .bashrcおよび.bash_profile; PS1がシステム全体に設定されている可能性があります。ただし、独自のファイルの1つでそれをオーバーライドできます。

16
Bob Eager

Bash 4以降、コマンドラインでディレクトリの深さを短くする簡単な方法は、bashrcファイルで以下のコマンドを使用することです。ターミナルを再度開くことを忘れないでください。また、番号(つまり1)は、表示するディレクトリの深さを指定します。

Prompt_DIRTRIM = 1

29
Esmaeil MIRZAEE

Bashを使用している場合、\Wではなく\wになるようにプロンプ​​ト文字列(変数PS1)を変更します。

例えばPS1が現在\u@\h:\w\$の場合は、\u@\h:\W\$に設定します

これを永続的にするには、bashスタートアップファイルで変更する必要があります。 ~/.bash_profileまたは~/.bashrc

詳細とバックスラッシュでエスケープされた特殊文字のリストについては、man bashを参照し、PROMPTINGを検索してください。

3
cas

これはすべてのshシェルに移植可能です。

シェルスタートアップファイルの1つでPS1に割り当てます。

PS1='${PWD##*/} $ '

プロンプトは次のようになります

dir $

ここで、dirは現在のディレクトリのベース名です。

$PWD変数には現在のディレクトリパスが含まれ、${PWD##*/}はそのパスの最後の/までをすべて取り除きます。

単一引用符は、割り当て時に変数置換を評価するシェルフォームを防ぎます($PS1の値は、プロンプトが表示されるたびに評価されます)。

PS1変数は現在のシェルでのみ使用されるため、エクスポートしないでください。

1
Kusalananda

この場合、編集する必要がありますPS1

\w、短縮されたパスを示すコマンドまたは変数があります。

オリジナルPS1

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$'

に変更

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]${PWD##*/}\[\033[00m\]\$'

あなたがあなたのホームディレクトリにいる場合、これは〜の本質的なユーザー名を置くことに注意してください!

これを回避するには、$ {PWD ## * /}を組み込んだいくつかのコマンドが必要になります。

if [[ "${PWD}" == "${HOME}" ]] ; then printf \~; else echo -n ${PWD##*/}; fi

新しいPS1は次のようになります

PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]`if [[ "${PWD}" == "${HOME}" ]] ; then printf \~; else echo -n ${PWD##*/}; fi`\[\033[00m\]\$'

oOps noIdea |忘れていた世界を救おうとしている間に\ W

1
Jonah

https://github.com/chrissound/SodiumSierraStrawberry

次のようにパスを切り詰めることができます:

From:/ home/sodium/Projects/Personal/Sierra/Super/Long/Path/HolyAvacado

宛先:"Projects/Sie…/ Sup…/ Lon…/ Pat…/ HolyAvacado /

0