我可以PATH
仅从我(当前用户)有权写入的目录中提取内容吗?
我可以想象我需要类似的东西,echo $PATH | grep...
但我不知道是什么。
答案1
答案2
With zsh
(其中与数组$PATH
相关$path
):
writable_path_components=( $^path(N-/e['[[ -w $REPLY ]]']) )
writable_path_components
将在数组中存储$PATH
当前用户可写的目录组件(在符号链接解析后确定)。
空元素将被丢弃。$PATH
强烈建议不要使用空元素或任何重要的相对路径。
如果$PATH
包含相对路径,则意味着虽然其中一些现在可能是可写的,但一旦您在其他地方进行 cd 操作,它们可能就不再是可写的。
要清理$PATH
并删除所有相对路径以及重复项,您可以执行以下操作:
typeset -U path=( ${(M)path:#/*} )
将属性设置U
为 on $path
(此处仍与 相关$PATH
),意味着$PATH
元素将保持唯一。
答案3
这就是你可以做到的xonsh
import os;[p for p in $PATH if os.access(p, os.W_OK)]
返回可写路径的列表。