2015-09-03 105 views
3

我使用doxygen生成一些文档,这会在文件夹中生成大量文件。Bash搞砸了执行命令?

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

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

我本来该在同一行,但把它变成以多行这样一个脚本文件没有有所作为。

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

注意:使用的doxygen是Windows的,而不是cygwin。我只使用cygwin进行作业控制。由于不使用fork这对于cygwin来说是一个昂贵的仿真,所以窗口更快。

编辑:Windows和的doxygen的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 
... 
+0

你如何看待使用移动路径的doxygen?它使用它作为'doxygen'还是作为'doxygen.tmp'(可以是doxygen使用的内部名称)?如果你使用像'mvtest'这样的名字,会发生这种情况吗? –

+0

@EtanReisner,doxygen公司,它无法找到文件,然后吐出'.../doxygen.tmp/...'的路径。不,不是一个doxygen使用的名称。我试过其他临时目录名称。 – Adrian

+0

如果它吐出'doxygen.tmp',那么它会看到新的名字。你从其他临时目录名称得到同样的失败?哪里有你选择的名字在错误信息中? –

回答

4

我想通解决问题。

问题不在于inode被持有或bash搞砸了,而是doxygen正在递归搜索目录中的文件以进行文档化。由于文档与源文件放在同一目录中,因此它将在文档目录中查找正在被删除的文档内容,从而导致错误。添加此项:

EXCLUDE_PATTERNS  = doxygen* 

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