我在尝试写入文件描述符时无法理解发生了什么?它似乎覆盖了原始内容?这是预期的行为吗?
我在下面的例子中复制了这个:
$ echo "The quick brown fox ..." > example.txt
$ echo "The quick brown fox ..." >> example.txt
$ cat example.txt
The quick brown fox ...
The quick brown fox ...
$ exec 88<>example.txt
$ cat example.txt
The quick brown fox ...
The quick brown fox ...
$ echo "jumped" >&88
$ cat example.txt
jumped
ck brown fox ...
The quick brown fox ...
$ echo "jumped" >&88
$ cat example.txt
jumped
jumped
n fox ...
The quick brown fox ...
Run Code Online (Sandbox Code Playgroud)
Ste*_*ris 11
因为您没有对描述符 88 进行任何读取,所以当前查找位置为“0”,因此写入发生在该点。
相反,如果您在此之前阅读了该文件,则会发生附加:
bash-4.2$ cat <&88
The quick brown fox ...
The quick brown fox ...
bash-4.2$ echo hello >&88
bash-4.2$ cat example.txt
The quick brown fox ...
The quick brown fox ...
hello
bash-4.2$ echo more >&88
bash-4.2$ cat example.txt
The quick brown fox ...
The quick brown fox ...
hello
more
Run Code Online (Sandbox Code Playgroud)