GNU/Linux >> Belajar Linux >  >> Linux

Disingkat Direktori Saat Ini Di Shell Prompt?

vim memiliki fitur yang sangat bagus yang digunakan di jalurnya ketika mereka agak panjang:

Ini menyingkat jalur ke dokumen di tab di bagian atas. Apakah ada cara untuk melakukan sesuatu yang mirip dengan ini sehingga bash prompt saya tidak terlihat seperti ini:

[email protected] ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $ 

Jawaban yang Diterima:

Coba ini:

PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'

atau, bash murni:

PROMPT_COMMAND='PS1X=$(p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf "${q:1}")'

lalu

PS1='[email protected] ${PS1X} $ '

menghasilkan (perhatikan ~ untuk ${HOME} ):

[email protected] ~/D/P/W/m/s/m/j/c/tkassembled $

Saya meningkatkan jawaban saya berkat @enzotib


Linux
  1. Kesalahan shell-init mengambil direktori saat ini [Perbaiki]

  2. $pwd? (vs Direktori Kerja Saat Ini)?

  3. Dari Mana Skrip Shell Dijalankan?

  1. Regenerasi .bashrc Dari Shell Saat Ini?

  2. Bagaimana cara menjalankan program dengan direktori kerja yang berbeda dari saat ini, dari shell Linux?

  3. Direktori skrip Shell saat ini?

  1. Direktori perubahan skrip Shell dengan variabel

  2. Tampilkan hanya nama direktori saat ini (bukan path lengkap) di bash prompt

  3. Menjalankan skrip dari direktori lain