PRUNEPATHS検索でスペースを含むディレクトリを除外する方法は?

PRUNEPATHS検索でスペースを含むディレクトリを除外する方法は?

特定のWindowsフォルダがNTFSにマウントされないように除外したいと思います。構文にlocate精通しています。スペースで区切られたディレクトリ名のリスト。PRUNEPATHS/etc/updatedb.conf

私の問題は、それ自体にスペースを含むディレクトリ(たとえば)を除外したいということですProgram Files (x86)

バックスラッシュエスケープしようとしましたが、うまくいきませんでした。

ベストアンサー1

updatedb.sh175行目では、次のヒントを提供します。

PRUNEREGEX=`echo $PRUNEPATHS|sed -e 's,^,\\\(^,' -e 's, ,$\\\)\\\|\\\(^,g' -e 's,$,$\\\),'`

ここでは$PRUNEPATHSプレーンテキストのように扱われ、 ""文字が置き換えられ、エスケープできません。

175行目にスペースがあることを確認するには、明示的に言及せずにそれを表現する必要があります。私が知っている最良の方法は\s空白文字を使用することです。これは次のことを意味します。

PRUNEPATHS='/path/to/Program\sFiles\s(x86)'

(ここにはタブや改行文字も含まれますが、この場合は大丈夫です。)

もう1つの方法は、175行目に示す$PRUNEREGEXように直接設定することです。updatedb

PRUNEREGEX='\(^/path/to/Program Files (x86)$\)'

以下を使用して複数のパスを区別できます\|

PRUNEREGEX='\(^/path/to/Program Files (x86)$\)\|\(^/foo/bar$\)'

おすすめ記事