Bash
在 bash 提示符中縮短很長的目錄名稱
如何從這個提示中獲取
~/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 $ _