ls 및 와일드카드를 사용하여 파일 찾기

ls 및 와일드카드를 사용하여 파일 찾기

pwd : ../binbin 아래에 이라는 디렉토리가 있습니다 datafiles.

메타 문자와 명령(소문자 및 대문자 L 포함)을 사용하여 점 뒤에 문자 "f" 또는 "u"가 포함된 점이 포함된 ls -lL디렉터리의 모든 파일 이름을 나열합니다 .datafiles.

나는 시도했다:ls -lL datafiles *.*f*u

ls -lL datafiles .[f*u]

답변 주셔서 감사합니다. 불행히도 이러한 솔루션 중 어느 것도 내가 원하는 방식으로 작동하지 않았습니다.

질문을 명확히하면 /bin/datafiles/file.backup디렉토리의 루트입니다. /bin디렉토리 에서 명령 ls -lL datafiles과 메타문자를 사용했습니다.

내가 찾고 있는 것은 file.backup점 뒤에 or 이 있고 f, u바로 뒤에 for u(점 뒤 아무데나)이 없고, for 로 끝나지 않는 것입니다 u.

답변1

그러면 점 다음에 f 또는 u가 오지만 f 또는 u로 끝나지 않는 데이터 디렉토리의 파일을 찾습니다.

ls -lL datafiles/*.*[fu]*[^fu]

이 질문의 버전 1에 대한 답변

"f 또는 u"라고 썼어요. 전역적으로 작성하려면 를 사용하세요 . 또는 앞에 점을 추가 [fu]하려면 다음 을 시도해 보세요.fu

ls -lL .*[fu]* *.*[fu]*

위의 첫 번째 glob은 .*[fu]*점으로 시작하는 파일로 확장됩니다(즉, 일반적으로 "숨겨져 있음"을 의미함). 두 번째 항목인 은 *.*[fu]*이름 어딘가에서 약간 확장되지만원하지 않는다점으로 시작하세요.

숨겨진 파일은 다양한 프로그램의 구성 파일로 사용되는 경우가 많습니다. 보고 싶지 않고 일반적으로 보고 싶지 않다면 첫 번째 glob을 생략하고 다음을 사용하세요.

ls -lL *.*[fu]*

글로브에 대한 추가 정보

  • *.*f*u점이 포함된 f파일 이름 으로 확장되고, 그 뒤에는 (꼭 즉시는 아님) , 로 끝납니다 u. 즉, 이 glob에서는 및 둘 다 f파일 이름에 나타나야 하며 그 u순서대로 나타나야 합니다.fu

    일반적으로 *0개 이상의 문자를 의미합니다. 특별한 경우로, 위의 파일은 점으로 시작하는 파일과 일치하지 않습니다. 왜냐하면 이러한 파일은 관례에 따라 "숨겨져" 있기 때문입니다.

  • .[f*u]점과 문자 중 하나 또는 또는(그 이후에는 다른 문자 없음)로 구성된 파일 이름으로 f확장 *됩니다 u. 별표는 대괄호 안에 있기 때문에 0개 이상의 문자라는 일반적인 의미를 잃고 리터럴이 됩니다 *.

관련 정보