GNU/Linux >> Tutoriels Linux >  >> Linux

Répertoire actuel abrégé dans l'invite du shell ?

vim a une fonctionnalité vraiment sympa qu'il utilise dans ses chemins quand ils sont un peu longs :

Il abrège le chemin d'accès au document dans l'onglet en haut. Existe-t-il un moyen de faire quelque chose de similaire pour que mon invite bash ne ressemble pas à ceci :

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

Réponse acceptée :

Essayez ceci :

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

ou, bash pur :

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

alors

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

produit (notez le ~ pour ${HOME} ):

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

J'ai amélioré ma réponse grâce à @enzotib


Linux
  1. Erreur Shell-init lors de la récupération du répertoire actuel [Réparer]

  2. L'invite du terminal écrase la ligne actuelle ?

  3. $pwd ? (vs répertoire de travail actuel) ?

  4. D'où est exécuté un script Shell ?

  5. Régénérer .bashrc à partir du shell actuel ?

Commande Pwd sous Linux (répertoire de travail actuel)

Comment ajouter un répertoire à PATH sous Linux

Comment vérifier si un fichier ou un répertoire existe dans Bash Shell

Revenir au répertoire précédent dans le shell

push/pop répertoire courant ?

Quelle commande du shell sh Linux/UNIX renvoie mon répertoire actuel ?