Bash

在 bash 提示符中縮短很長的目錄名稱

  • December 27, 2018

如何從這個提示中獲取

~/this/is/a-very-very-long-directory-name/dir

對此

~/this/is/a-ver...name/dir

在 bash 提示符下?

因此,將超過 nn (20+) 個字元的目錄名稱縮短為類似 xxxx…xxxx

注意可能重複:我想縮短一個長目錄名,而不是一個長路徑/到/目錄

您需要使用sed之類的東西, bash 沒有任何內置方法。

d='~/this/is/a-very-very-long-directory-name/with_another_very_long_name/and-here-is-yet-another-one'
# or, d=$(pwd)
e=$( echo "$d" | sed -E 's#([^/]{4})[^/]{13,}([^/.]{3})#\1...\2#g' )
echo "$e"
~/this/is/a-ve...ame/with...ame/and-...one

另一方面,您可能希望在提示符中加入換行符。我使用這樣的東西:

PS1='\u@\h:\w\n\$ '

看起來像

jackman@myhost:~/this/is/a-very-very-long-directory-name/with_another_very_long_name/and-here-is-yet-another-one
$ _

引用自:https://unix.stackexchange.com/questions/491141