无法更新以反映新文件吗?

vij*_*rox 4 linux bash ls file

我正在运行一个程序,该程序在某个目录中创建一堆文件,并且我想观看文件被创建的情况。

我打开两个终端窗口,然后将其中一个(称为终端A)​​cd到程序的目录(这样我就可以运行它),另一个(终端B)到输出文件被写入的目录(此输出目录开始)清空)。当我touch在终端A的输出目录中然后ls在终端B的文件中出现新文件时,所有这些行为均正常。

不过,我在运行一个终端程序后,没有新的文件显示,当我做ls在终端B.奇怪的是,如果我这样做cd . ,然后 ls在B端,新的文件,现在可以上市。

是什么导致了此行为,我可以解决它吗?

编辑:有关正在写入文件的信息。

  • 有些是cv2.imwrite(...)使用OpenCV在Python 2中通过调用编写的。
  • 有些是用ofstreamC ++ 编写的。

小智 6

这一系列事件似乎重现了问题。

图片

您在终端A中的程序可能会删除终端B的当前目录,然后使用相同的名称重新创建它,因此该ls操作无效,因为最初cd由终端B转到的特定目录已不存在。但是,cd .将您带到(现在)重新创建的目录,此时该目录ls又可以工作了。