使用 cat 命令,为什么这样打印结果?


># cat /etc/passwd > test 
># cat < test >> test 

我像那样输入提示。

然后命令的结果是测试文件的大小增加很多而且很快。 为什么会这样?

在第二个命令中,你告诉操作系统:

  1. 打开test读取 (< test)
  2. 打开test进行写入,并寻求到底(>> test)

然后cat从当前读取文件指针读取一个块,并将该块写入当前写入文件指针,直到它到达末尾。但是,由于文件在每次写入时都会不断增长,因此读取块永远不会到达实际结束,并且会永远持续下去。

看起来您读取和写入同一个文件 ("test")。显然,您的计算机写入速度比读取速度快。读取不会获得 EOF(文件结尾),因此文件会增长。

这是一个有趣的案例,在哪个设备/文件系统类型文件"test"上创建?

最新更新