2015-09-03 101 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文檔目錄移動到另一個路徑位置可修復問題。