現在のユーザーに書き込み権限を持つPATHディレクトリを一覧表示しますか?

現在のユーザーに書き込み権限を持つPATHディレクトリを一覧表示しますか?

PATH私(現在のユーザー)に書き込み権限があるディレクトリからのみコンテンツを抽出できますか?

似たようなことが必要だと想像できますが、echo $PATH | grep...何なのかわかりません。

ベストアンサー1

コロンで区切って次に$PATH変更します。IFSコロンでフィールドを分割期間単語拡張、以下を使用して各コンポーネントに書き込むことができることを確認します。-wテスト:

(IFS=:; for p in $PATH; do [ -w "$p" ] && printf '%s\n' "$p"; done)

これは空の項目を無視します(現在のディレクトリ)ワイルドカードを含むアイテムには間違った結果が得られます(Billyおじさんが指摘したように)。両方を処理するには、次を使用します。

sh -fc 'IFS=:; for p in $PATH""; do [ -w "${p:-.}" ] && printf "%s\n" "$p"; done'

おすすめ記事