$ PATHにリストされているすべてのディレクトリを表示する方法

$ PATHにリストされているすべてのディレクトリを表示する方法

にリストされているすべてのディレクトリを表示するには$PATH

答え1

printf '%s' "$PATH" | tr ':' '\n'

このtrコマンドを使用する理由は、ヒント内部に質問の元のバージョンそれを使用することをお勧めします。

答え2

仮定(また、bashシェル変数の値を使用または表示する方法がわかっていると仮定)echoprintf

printf "${PATH//:/\\n}"

これはシェル内のパラメータ拡張を利用します。拡張自体は${parameter/pattern/string}パラメータPATH/:パターン、および\\n(代替)文字列です。パターンの先行ディレクティブは、/すべてのinsideエントリを置き換える必要があります。:PATH

答え3

コンテンツを一覧表示したい場合は、POSIXシェルで次のことができます。

(IFS=:; set -o noglob; ls -Hl -- $PATH)

$PATH(現在のディレクトリの場合)空のコンポーネントがないとします。

シェルを使用すると、fish次のようになります。

ls -Hl -- $PATH

(環境変数を空のコンポーネントが次に変更されたシェル配列変数にfish変換します。)PATH.

そして(t)csh

ls -Hl -- $path:q

$PATHはいマッピングされた$pathそこの配列に変換し、空の文字列を.)に変換します。

inzshでも配列に$PATHマップされますが、空のコンポーネントは変更されませんので、次のようなものが必要です。$path.

ls -Hl -- "${path[@]/#%/.}"

手動で変換してください。

必要なのは、そのディレクトリの内容をリストするのではなく、1行にこれらのパスを出力することls -Hl --ですprintf '%s\n'

答え4

ここにいる:

echo $PATH | sed 's/:/\n/g'

編集:コンテンツを表示するには

ls `echo $PATH | sed 's/:/\n/g'`

関連情報