0
我有一個相當有趣的問題,我試圖找到最佳解決方案。我正在爲Emacs創建一個文件自動完成後端。這意味着我正在使用linux find
命令獲取文件和目錄。Unix查找與目錄匹配的目錄
後端給出了部分完成的路徑的文件(如/usr/folder/foo
),我要搶,可以匹配兩個目錄下(如例如部分路徑的所有文件和目錄,它可以提供foo_bar/
,foo_bar/bar
,foo_bar/baz
,foo_bar/bat/
foo_baz
)。到目前爲止,我只去過將其分爲3個步驟
查找當前目錄下的所有文件可以通過前綴
find foo* -type f -maxdepth 1
收集我們可能想通過
find foo* -type d -maxdepth 1
尋找所有可能的目錄
使用每個這些目錄中,使2個電話找(我需要能夠文件和目錄區分)
find foo_bar/ -type d -maxdepth 1
find foo_bar/ -type f -maxdepth 1
此解決方案涉及很多撥打find
(特別是因爲必須爲每個匹配的目錄調用最後一步)的。這使候選人變得緩慢,特別是在大型文件系統中。理想情況下,我只想讓一個電話獲得所有的候選人。但我還沒有找到一個好方法來做到這一點。有誰知道最佳解決方案?