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)를 사용하여 디렉터리를 역일치할 수 있습니다 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