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)'

(여기에는 탭과 개행 문자도 포함되지만 이 경우에는 괜찮습니다.)

또 다른 방법은 175행에 표시된 $PRUNEREGEX대로 직접 설정하는 것입니다 .updatedb

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

다음을 사용하여 여러 경로를 구분할 수 있습니다 \|.

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

관련 정보