ls > list命令的执行流程
2023-01-13
#linux
678 words
2 min read
提问
译文:
|
|
我知道>
符号会将标准输出重定向至一个文件中,如果文件不存在它会创建该文件,否则会替换这个文件。
我想询问的是shell命令ls > list
的执行流程是否如下我所描述的那样。
1)因为文件名为list的文件不存在,所以首先会创建一个名为list的文件。
2)ls命令将列举出目录中的内容(list),列举的内容将被送入到标准输出中。
3)以替换添加的方式,将标准输出中的内容(list)添加到文件名为list的文件中。
我个人对于执行流程的理解如上所述,我希望你们能给我一些指点,谢谢。
回答
译文:
文件重定向操作符 > 由 shell 处理并且在启动二进制文件(ls)之前,将您所写入的任何文件创建/截断。这就是为什么您可以在文件内容中看到文件名list: 在 ls 进程启动之前已经创建了文件。
是的,你的理解是正确的。
这就是为什么不可能执行诸如 sort txt > txt 之类的操作— sort 读取文件之前,文件名为 txt的文件 将被截断。您最终将得到一个空文件。(注:sort命令用于对文本文件中所有行进行排序)
总结
ls > list
的执行流程:
1)> list
创建文件名为list的文件
2)ls
命令列举目录的内容(结果为list)
3)结果list将以替换式写入的方式写入到文件名为list的文件中。
shell命令/linux命令还是有很多值得探究的地方的。今天看到一篇文章What happens when you open a terminal and enter ‘ls’,文章讲述了当你打开终端,输入ls
命令会发生什么。自己浏览过后,发现有很多概念和名字都看不懂,阅读这篇文章对我而言有些痛苦,但这正好指出了我以后努力的方向。
文档信息
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享4.0许可证)