CentOS 6.8을 사용하고 있으며 변수 (fPath라고 부름)를 파일의 파일 경로로 설정하려고 시도하고 있습니다 (폴더를 Foo라고 부름). 요점은 사용자가 폴더 Foo를 어디에 설치했는지 정확히 알 수 없다는 것입니다.정확한 텍스트가 포함 된 폴더 만 찾는 방법
문제는 내 find 명령이 Foo 문자열을 포함하는 모든 폴더를 반환한다는 것입니다 (Foo 폴더 내부에는 Foo_logs, Foo_apps, FooMore 등이 있습니다). 내 찾기 명령에서 Foo 폴더 경로 만 찾거나 반환하도록합니다.
것은 내가 검색을 시도하고 난이 만든 가장 가까운 시도는 명령을 사용한다 : 나는 푸 폴더를 포함하는 디렉토리 내에 이미 해요 경우
find -regex ./Foo
그러나 이것은 단지 푸 폴더 경로를 반환합니다. 어떤 디렉토리에 있어도 find 명령을 적용하여 Foo 폴더 경로 만 리턴하고 싶습니다. 내가 시도했습니다
다른 명령은 다음과 같습니다
가locate Foo
find -type d -name Foo
find ./Foo
locate /Foo
locate ./Foo
find Foo | -wholename '*/Foo/*'
find ./Foo | -wholename '*/Foo/*'
find .*/Foo | -wholename '*/Foo/*'
편집 : 당신이 짐작으로 find
완벽하게 일을 할 것,
감사합니다.하지만 여전히 Foo 문자열 (Foo_logs 등)이 포함 된 모든 디렉토리를 반환합니다. 나는 Foo 파일에 대한 단일 리턴을 얻으려고 시도하고 있으며, 파일 이름은 Foo와 동일하고 다른 것은 없다 ('_'또는 'log'등). – Matt1713
Foo라는 이름의 디렉토리가 여러 개있는 경우 해당 디렉토리를 출력으로 가져옵니다. 쉘이 더 많은 조건을 부여하지 않으면 찾고있는 쉘을 "추측"할 방법이 없습니다. Foo_log는 "Foo"디렉토리에 있지 않는 한 결과에 표시되지 않습니다 (처음에 찾고있는 것). – yoones
오. 내가 참조. 명확히하기 위해 Foo라는 이름의 디렉토리/폴더가 하나만 있어야합니다. 그러나 find 명령에서 "Foo"문자열을 포함하는 디렉토리의 다른 내용을 무시하는 방법이 있습니다. 이전에 말한 것처럼 Foo 내부에있는 Foo_logs 디렉토리를 원하지 않습니다. 출력물에만 Foo 파일 경로가 필요합니다. 그게 가능하니? 푸 /\ Foo_logs FooMore 난 그냥 푸 부모의 파일 경로입니다 돌아 찾을 원하는 것은 : 그래서 기본적으로 나는 이런 식으로 뭔가가있다. 다른 사람들은 파일 이름에 "Foo"이상의 것을 가지고 있습니다. – Matt1713