首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改文件,同时将其重定向为stdin输入到命令

更改文件,同时将其重定向为stdin输入到命令
EN

Unix & Linux用户
提问于 2016-04-10 07:18:59
回答 1查看 676关注 0票数 0

在Bash中,运行mycommand < myfile时,我修改myfile的S内容。

myfile mycommand的内容是什么?当我开始运行mycommand时,它是获得了myfile的原始内容,还是得到了修改后的myfile的内容?

EN

回答 1

Unix & Linux用户

发布于 2016-04-10 07:27:15

这取决于mycommand做什么。如果它睡了10分钟,然后开始读取它的标准输入,如果它们已经完成,它将看到您的修改。如果它对文件的一部分进行了第一次读取,那么您将修改该文件,并进行第二次读取,它将看到超出已读取点的更改。

另外,由于许多程序都使用了缓冲,当您认为您的命令只读取了一行时,它实际上可能读得更多(“缓冲区满”,通常是8192字节)。

但是,请注意,编辑程序通常会删除一个文件并在更改后重新创建一个新文件。在这种情况下,您的程序仍将使用已删除的旧文件内容,而不会看到任何更改。这是因为当您打开一个文件时,文件名被转换为它对应的唯一"inode“,并且不再需要文件名。如果有人删除了该文件,只要某个文件仍然打开,这个inode就会继续生存下去。当使用相同的文件名创建一个新文件时,它将得到一个不同的唯一inode。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/275455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档