Directory
如何通過定位的 PRUNEPATHS 排除帶有空格的目錄?
我想排除 NTFS 掛載上的某些 Windows 文件夾被
locate
. 我PRUNEPATHS
熟悉/etc/updatedb.conf
. 它是一個以空格分隔的目錄名稱列表。我的問題是我想排除本身包含空格的目錄(例如
Program Files (x86)
)。我嘗試了反斜杠轉義,但沒有奏效。
在
updatedb.sh
第 175 行給出了一個提示:PRUNEREGEX=`echo $PRUNEPATHS|sed -e 's,^,\\\(^,' -e 's, ,$\\\)\\\|\\\(^,g' -e 's,$,$\\\),'`
那裡
$PRUNEPATHS
像純文字一樣處理,’ ’ 字元被替換並且不可能轉義。為確保該空間在第 175 行中保留下來,您必須在不明確提及的情況下對其進行表示。我知道的最好的方法是使用
\s
,這意味著一個空格字元:PRUNEPATHS='/path/to/Program\sFiles\s(x86)'
(這也將包括製表符和換行符,但在這種情況下對你來說沒問題。)
另一種方法是
$PRUNEREGEX
直接設置,如updatedb
第 175 行:PRUNEREGEX='\(^/path/to/Program Files (x86)$\)'
在那裡,您使用 分隔多個路徑
\|
,因此空間不再是問題:PRUNEREGEX='\(^/path/to/Program Files (x86)$\)\|\(^/foo/bar$\)'