Grep

列出目前使用者有權寫入的 PATH 目錄?

  • December 10, 2021

PATH我可以僅從我(目前使用者)有權寫入的目錄中提取嗎?

我可以想像我需要類似的東西,echo $PATH | grep...但我不知道是什麼。

通過在單詞擴展期間$PATH更改IFS為冒號上的拆分欄位來拆分冒號,並檢查您是否可以使用test寫入每個組件:-w

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

這將忽略空條目(代表目前目錄),並且會為包含萬用字元的條目給出不正確的結果(正如比利叔叔所指出的)。要同時處理這兩種情況,請使用

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

引用自:https://unix.stackexchange.com/questions/680821