在 unix 中删除命令(rm)?

Nit*_*ish 2 linux unix command-line

我的目录中没有名为 a. 我使用命令“rm a 2>a”将标准输出错误重定向到文件 a。但是当我尝试“ls”命令时,没有名为 a.ls 的文件。有人可以解释一下吗?

小智 10

2>a导致 shell 将标准错误流重定向到名为a. 该文件是在命令启动之前创建的。rm然后被执行。它找到一个名为a(已经由 shell 创建)的文件并取消它的链接。

  • 是的...文件仍然存在,因此在调用 `unlink` 之后 `rm` 写入 stderr 的任何内容都可以进入它,但它不再有它的名字。当进程退出时,文件最终消失了。 (4认同)