![通过命令使用不寻常的路径](https://linux22.com/image/149545/%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%AF%BB%E5%B8%B8%E7%9A%84%E8%B7%AF%E5%BE%84.png)
假设有以下目录:
mkdir """
'''\n
"
并且可以使用以下命令查询目录:
stat --printf '%n' ** #or for simplicity stat --printf '%n' $'\n'\'\'\'\\n$'\n'
并在变量中捕获从 stdout 返回的文件名,获取文件名的正确二进制表示形式:
#this should be a new line which I can't show
'''\n
如何发送该变量以在标准输入上执行后续命令并让它们始终工作,例如将其作为字符串发送失败:
stat
'''\n
这适用于大多数情况,但并非全部:
stat "/path/here"
下面的命令也适用于大多数情况,但并非全部:
p="$(cat<<EOF
'''\n
EOF
)"
stat -- "$p"
如果我使用捕获的变量作为通过节点的生成的争论,它可以工作 - 所以从 stat 捕获是正确的,问题是在将变量作为字符串发送到 stdin 时发生的转换 - 这是必需的