为什么 `rm writeprotectedfile < ""` 会删除文件?

为什么 `rm writeprotectedfile < ""` 会删除文件?

当要求删除写保护文件时,GNU 命令的默认行为rm是交互询问用户是否要删除每个文件。这在很多情况下是相当不方便的。

提供交互式命令调用的一种粗略通用方法没有有意义的输入是使用here-string。我预计在这种情况下,

touch wpf && chmod -w wpf
rm wpf <<< ""

将导致命令被中止,即文件之后仍然存在,就像我尝试在提示符下rm wpf点击enter或时一样。ctrl+d

然而令我惊讶的是,它实际上导致文件被删除。
(Ubuntu 18.04、GNU Bash 4.4.20、coreutils 8.28)

这是怎么回事?它是否也会对类似情况产生影响?

相关内容