Linux에서 파일 이름을 표시하는 디렉터리에 와일드카드를 사용합니까?

Linux에서 파일 이름을 표시하는 디렉터리에 와일드카드를 사용합니까?

그래서 제가 조사한 문제 중 하나는 files디렉토리의 내용을 표시하는 와일드카드를 사용하면 특정 내용을 표시한다는 것입니다. 이 경우 목표는 사용하는 것이고 ls제가 놓친 부분은 stat의 파일 이름은 . 이지만 .이 될 수 있는 a모든 파일을 제외합니다 .aaab

팁이 있으면 계속 찾아보고 게시하고 답변하겠습니다. 와일드카드 사용에 대한 도움이 있으면 도움이 될 것입니다. 감사해요

답변1

위치 로 시작 a하지만 위치를 포함하지 않는 aa파일 이름을 일치시키려면,

를 사용하면 zsh -o extendedglob다음을 사용할 수 있습니다.~ 와는 별개로운영자:

ls -ld a*~*aa*

그리고 bash -O extglob -O failglob:

ls -ld !(!(a*)|*aa*)

답변2

여러 조건을 사용하여 복잡한 파일 glob을 실행하는 것은 셸에서 어렵습니다. 이렇게 하면 사용이 더 쉬워집니다 find.

find files -maxdepth 1 -name 'a*' ! -name '*aa*' -type f -print

그러면 디렉토리에서 files로 시작 a하지만 하위 문자열을 포함하지 않는 일반 파일의 경로 이름이 출력됩니다 aa.

ls -l동작을 얻으려면 -print으로 변경하십시오 -ls.

답변3

내가 찾은 답은ls a[!a]*

a이렇게 하면 첫 번째 문자로 단어를 찾을 수 있지만 아무것도 찾을 수 없습니다.aa

관련 정보