重复创建名为 /dev/stdin 的文件可能很危险?

重复创建名为 /dev/stdin 的文件可能很危险?

在 Newham 和 Rosenblatt 合着的《Learning the Bash shell》第三版中,第 15 页有这样的评论:

如果在省略文件名参数时特定 UNIX 实用程序不接受标准输入,请尝试使用破折号 (0) 作为参数。某些 NIX 系统将标准输入作为文件提供,因此您可以尝试提供文件 /dev/stdin 作为输入文件 argumnet。

最后一句我不清楚 - “以文件形式提供标准输入”是什么意思?

/dev/stdin“重复”创建系统中命名的文件不是很危险吗(我个人使用Ubuntu 16.04)。

顺便说一句,我遇到过类似的案例这个帖子

答案1

这不是关于创建/dev/stdin,而是关于使用它:您指定/dev/stdin要与默认情况下不支持标准输入(或使用-)的任何命令一起使用的文件,以使其无论如何都使用其标准输入。

因此

cat
cat -
cat /dev/stdin

all 都cat从其标准输入中读取(尽管使用 时的方式略有不同/dev/stdin,具有不同的文件描述符,这意味着它并非在所有情况下都是等效的)。我不是创造 /dev/stdin,我使用预先存在的设备节点作为 的参数cat

相关内容