2010-12-27 6 views
1

Linux (Ubuntu)를 사용하고 있는데 파일을 찾으려고하는데 제대로 작동하지 않습니다. 내 find/home/lokesh/Desktop/Testing_India2/Test/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/Find/세계/인도/Maharashtra/-name 파일 이름 * .xml -mmin -3000 ". 결과를 완벽하게 제공합니다. 그러나 세계 또는 인도 수준에서 동일한 명령을 사용할 때는 "find/home/lokesh/Desktop/Testing_India2/Test/World/-name 파일 이름 * .xml -mmin -3000"을 의미합니다. 그것은 어떤 결과도주지 않습니다.linux find 명령이 제대로 작동하지 않습니다.

나는 Maharashtra 수준뿐만 아니라 인도에 많은 디렉토리가 있으며 Maharashtra 내에있을 수 있습니다. 모든 디렉토리에서 생성 된 각 파일을 찾아야합니다. 다른 컴퓨터의 모든 폴더를 탑재했습니다. (다른 컴퓨터의 일부 상태와 다른 컴퓨터의 일부 상태를 의미합니다.)

누군가가이 문제를 해결하는 방법을 알고 있다면 가능한 한 빨리 회신 해주십시오.

감사합니다.

+0

이것은 프로그래밍 관련 질문이나 주제가 아닙니다. 나는 당신이 http://ubuntu.stackexchange.com – Oded

답변

12

큰 따옴표 검색 문자열과 -L는 심볼릭 링크를 따라 만들려면 :

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name "filename*.xml" -mmin -30000 
+0

에 요청하는 것이 좋습니다. 안녕하세요, 답장을 보내 주셔서 감사합니다. 나는 똑같이 시도했지만 또한 작동하지 않는다. 다른 방법이 있으면 저에게 제안하십시오. –

+0

-mmin -3000 부분을 제거해보십시오. – ismail

+0

나는 또한 똑같이 시도했지만 작동하지는 않았다. 내 찾기 명령에 잘못이 있습니까? –

3

이는 '*'와일드 카드를 사용하여 실제로 때 나는 오늘 아침에 달렸다 무언가이다. *를 사용하여 *를 이스케이프하지 않으면 서브 디렉토리를 계속 통과 할 수 없습니다.

이 사용 해보세요 :

find -L /home/lokesh/Desktop/Testing_India2/Test/World/ -name filename\*.xml -mmin -30000 
+0

여기의 문제는 셸이 *를 확장한다는 맨 페이지에서 언급되었으므로 셸 확장을 피하기 위해 인용하거나 이스케이프 처리해야합니다. 아, 그리고 아래 @ KlausCPH의 대답도. 죄송합니다. – pbhj

3

예, 당신이 당신의 -name 인수를있는 qoute 두 번이나 * 이전에 백 슬래시를 사용할 필요가 언급 한 바와 같이. 한 디렉토리에서 작동하지 않지만 다른 디렉토리에서 잘 작동하는 이유는 쉘에 의해 파일 이름 생성에 * 문자가 사용되기 때문입니다. 이것은 물론 find 명령이 실행되기 전에 발생합니다. 따라서 현재 디렉토리의 filename*.xml 패턴과 일치하는 파일이있는 경우 find이 실행되기 전에 대체됩니다. 이는 원하는 내용이 아닙니다. 반면, 현재 디렉토리에 일치하는 패턴이 없으면 * 문자가 수정되지 않은 find 명령으로 전달됩니다. qouting을 사용하면 쉘 파일 이름 생성에서 문자열을 보호 할 수 있습니다.

감사합니다.

관련 문제