pwd : ../bin
bin 아래에 이라는 디렉토리가 있습니다 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
바로 뒤에 f
or u
(점 뒤 아무데나)이 없고, f
or 로 끝나지 않는 것입니다 u
.
답변1
그러면 점 다음에 f 또는 u가 오지만 f 또는 u로 끝나지 않는 데이터 디렉토리의 파일을 찾습니다.
ls -lL datafiles/*.*[fu]*[^fu]
이 질문의 버전 1에 대한 답변
"f 또는 u"라고 썼어요. 전역적으로 작성하려면 를 사용하세요 . 또는 앞에 점을 추가 [fu]
하려면 다음 을 시도해 보세요.f
u
ls -lL .*[fu]* *.*[fu]*
위의 첫 번째 glob은 .*[fu]*
점으로 시작하는 파일로 확장됩니다(즉, 일반적으로 "숨겨져 있음"을 의미함). 두 번째 항목인 은 *.*[fu]*
이름 어딘가에서 약간 확장되지만원하지 않는다점으로 시작하세요.
숨겨진 파일은 다양한 프로그램의 구성 파일로 사용되는 경우가 많습니다. 보고 싶지 않고 일반적으로 보고 싶지 않다면 첫 번째 glob을 생략하고 다음을 사용하세요.
ls -lL *.*[fu]*
글로브에 대한 추가 정보
*.*f*u
점이 포함된f
파일 이름 으로 확장되고, 그 뒤에는 (꼭 즉시는 아님) , 로 끝납니다u
. 즉, 이 glob에서는 및 둘 다f
파일 이름에 나타나야 하며 그u
순서대로 나타나야 합니다.f
u
일반적으로
*
0개 이상의 문자를 의미합니다. 특별한 경우로, 위의 파일은 점으로 시작하는 파일과 일치하지 않습니다. 왜냐하면 이러한 파일은 관례에 따라 "숨겨져" 있기 때문입니다..[f*u]
점과 문자 중 하나 또는 또는(그 이후에는 다른 문자 없음)로 구성된 파일 이름으로f
확장*
됩니다u
. 별표는 대괄호 안에 있기 때문에 0개 이상의 문자라는 일반적인 의미를 잃고 리터럴이 됩니다*
.