ls 또는 파일 글로빙에서 특정 파일이나 디렉터리를 무시할 수 있습니까?

ls 또는 파일 글로빙에서 특정 파일이나 디렉터리를 무시할 수 있습니까?

ls 명령, 파일 globbing 및 grep 명령을 사용하는 데 문제가 있습니다. 다음 파일/디렉토리 트리를 고려하십시오.

abc/
    def
    ghi.txt
    jkl

def/
    f01
    abc
    abc.txt

ghi.txt

abc/ 디렉토리를 완전히 무시하고 다른 모든 것을 보고한다고 가정해 보겠습니다. ls -lR -Iabc ./def/abc.txt 파일을 보고하되 무시해 보세요 /def/abc. 여기서도 마찬가지 ls -lR . | grep -v abc입니다. Bash에서 내가 원하는 것을 할 수 있는 방법이 있나요?

ghi.txt아니면 무시하고 싶지만 보고한다고 가정해 보겠습니다 abc/ghi.txt. bash에서 이를 수행할 수 있는 방법이 있습니까?

답변1

Bash에서 확장 와일드카드가 활성화된 경우 !(abc)를 사용하여 디렉터리를 reverse로 일치시킬 수 있습니다 abc. 전임자. 주어진

$ tree
.
├── abc
│   ├── def
│   ├── ghi.txt
│   └── jkl
├── def
│   ├── abc
│   ├── abc.txt
│   └── f01
└── ghi.txt

2 directories, 7 files

그리고

$ shopt extglob
extglob         on

그 다음에

$ ls !(abc)
ghi.txt

def:
abc  abc.txt  f01

관련 정보