Ник*_*тюк 4 bash shell sh
为什么这个命令(创建一个空文件夹,更改它,触摸文件,调用ls然后再调用cat它),显示两个文件?
ls
cat
root@ubuntu:~# mkdir a ; cd a ; touch b ; ls > c ; cat c b c
我相信我应该只得到"b".
Cos*_*atu 5
当您将输出重定向ls到文件时c,它是鸡和蛋的问题:
c
如果c不能预先创建,那就意味着shell需要将输出存储在缓冲区中(最后)将该缓冲区写入文件.
由于在许多情况下这不是最好的方法(因为内存管理,管理在完成之前中断的命令失败等),文件会被预先创建.
因此,命令的标准输出可以用新创建的文件替换,命令输出可以流式传输到该文件.
归档时间:
10 年 前
查看次数:
52 次
最近记录: