Bash搞砸了执行顺序?

时间:2015-09-03 13:35:41

标签: bash cygwin doxygen job-scheduling

我使用doxygen生成一些文档,它会在文件夹中生成大量文件。

为了不必等待删除上一个文件夹,我决定在当前进程中移动文件夹,在单独的进程中删除该移动的文件夹,然后创建doxygen文档。除了发生的事情是移动的文件夹仍然是由doxygen引用。这是代码:

mv doxygen/ doxygen.tmp
rm -rf doxygen.tmp&
doxygen Doxyfile

我最初在一行上有这个,但是把它放在像这样的多行上的脚本文件中并没有什么区别。

可能导致此问题的原因是什么?它可能是由一个cygwin错误引起的吗?或者我错过了什么?

注意:使用的doxygen是windows,而不是cygwin。我只使用cygwin来控制工作。由于没有使用fork,这对于cygwin来说是一个昂贵的仿真,因此窗口速度更快。

编辑:doxygen的windows和cygwin版本都显示以下我之前没有注意到的:

窗口:

...
Searching for files in directory C:/cygwin/home/Adrian/Projects/genLang
Searching for files in directory C:/cygwin/home/Adrian/Projects/genLang/doxygen
Searching for files in directory C:/cygwin/home/Adrian/Projects/genLang/tmpaaaa
Searching for files in directory C:/cygwin/home/Adrian/Projects/genLang/tmpaaaa/html
Searching for files in directory C:/cygwin/home/Adrian/Projects/genLang/tmpaaaa/html/d0
...

Cygwin的:

...
Searching INPUT for files to process...
Searching for files in directory /home/Adrian/Projects/genLang
Searching for files in directory /home/Adrian/Projects/genLang/doxygen
Searching for files in directory /home/Adrian/Projects/genLang/tmpaaaa
Searching for files in directory /home/Adrian/Projects/genLang/tmpaaaa/html
Searching for files in directory /home/Adrian/Projects/genLang/tmpaaaa/html/d2
...

1 个答案:

答案 0 :(得分:4)

我想出了这个问题。

问题不在于保留inode或bash正在搞砸,但是doxygen以递归方式在目录中搜索要记录的文件。由于文档放在与源相同的目录中,因此它会在文档目录中查找要删除的内容,这些内容将被删除,从而导致错误。添加这个:

EXCLUDE_PATTERNS       = doxygen*

或将doxygen文档目录移动到另一个路径位置可以解决问题。

相关问题