71 votes

Comment afficher $PATH comme un répertoire par ligne ?

Je n'arrive pas à trouver comment lister les différents chemins d'accès dans $PATH séparément pour qu'ils ressemblent à ceci :

/bin
/usr/bin
/usr/local/bin

Comment cela peut-il être fait ?

89voto

heemayl Points 85741

Vous pouvez le faire avec l'une des commandes suivantes, qui substitue toutes les occurrences de : avec de nouvelles lignes \n .

sed :

$ sed 's/:/\n/g' <<< "$PATH"

tr :

$ tr ':' '\n' <<< "$PATH"

python :

$ python -c 'import sys;print(sys.argv[1].replace(":","\n"))' "$PATH"

85voto

Cyrus Points 4962

Utilisez la fonction Expansion des paramètres :

echo "${PATH//:/$'\n'}"

Cela remplace tous les : en $PATH par un saut de ligne ( \n ) et imprime le résultat. Le contenu de $PATH reste inchangé.
Si vous voulez seulement remplacer le premier : enlever la deuxième barre oblique : echo -e "${PATH/:/\n}"

30voto

muru Points 180007

Utilisation de l'IFS :

(set -f; IFS=:; printf "%s\n" $PATH)

IFS contient les caractères sur lesquels bash effectue le découpage, donc un fichier IFS con : permet à bash de diviser l'expansion de $PATH sur : . printf boucle les arguments sur la chaîne de format jusqu'à ce que les arguments soient épuisés. Nous devons désactiver le globbing (expansion de caractères génériques) en utilisant set -f afin que les caractères génériques dans les noms de répertoires PATH ne soient pas développés.

16voto

sourav c. Points 40637

使用方法 xargs :

xargs -n1 -d: <<< $PATH

Desde man xargs

-n max-args
          Use  at  most  max-args  arguments per command line.

 -d delim
          Input  items  are terminated by the specified character.

9voto

dolt Points 329

La seule façon qui n'a pas été mentionnée est probablement celle que j'utilise depuis des années :

echo $PATH | tr ":" "\n"

donc, dans votre .profile ou .bash_profile ou autre, vous pouvez ajouter :

alias path='echo $PATH | tr ":" "\n"'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X