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