하위 디렉토리에 hw, hw.cpp 및 hw.cpp2 트리 표시

하위 디렉토리에 hw, hw.cpp 및 hw.cpp2 트리 표시

tree다음과 같이 하위 디렉터리에 하드웨어 파일을 표시하고 싶습니다 .

.
├── exp
│   └── hw
├── src
│   └── hw.cpp2
└── tmp
    └── hw.cpp

$ /usr/bin/tree --noreport .모든 파일 표시:

.
├── exp
│   ├── hi
│   └── hw
├── src
│   ├── hi.cpp2
│   └── hw.cpp2
├── ssbuild.bash
├── sslogin.bash
└── tmp
    ├── hi.cpp
    └── hw.cpp

/usr/bin/tree --noreport -P *hw .hw확장 없이 :

.
├── exp
│   └── hw
├── src
└── tmp

/usr/bin/tree --noreport -P hw* .생산하다:

.
├── exp
├── src
└── tmp

버전 정보 /usr/bin/tree --version:

tree v2.1.0 © 1996 - 2022 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro

답변1

이 유틸리티 에는 출력의 일부가 되기 위해 파일 이름이 일치해야 하는 패턴을 지정하는 tree특정 옵션이 있습니다 . -P사용된 패턴 유형 -P은 셸 파일 이름 글로빙 패턴이므로 셸이 명령줄에서 확장하는 것을 방지하려면 따옴표로 묶어야 합니다.

tree -P 'hw*' .

현재 디렉토리에는 일치하는 이름이 포함되어 있지 않기 때문에 *hw(그리고 사용 중인 셸은 zsh기본적으로 그리고 bash셸 옵션 세트에서와 같이 일치하지 않는 와일드카드 패턴에 대해 불평하지 않으므로) 다음과 같은 경우 모드가 failglob확장되지 않습니다 . 당신은 그것을 사용하려고합니다. 그러나 패턴은 다음 이름과만 일치합니다.문자열에서 hw. 그러나 hw*명령줄에서 사용할 때 해당 출력이 나타나는 이유를 설명할 수 없습니다 .

예:

$ tree .
.
├── exp
│   ├── hi
│   └── hw
├── src
│   ├── hi.cpp2
│   └── hw.cpp2
├── ssbuild.bash
├── sslogin.bash
└── tmp
    ├── hi.cpp
    └── hw.cpp

3 directories, 8 files
$ tree -P 'hw*' .
.
├── exp
│   └── hw
├── src
│   └── hw.cpp2
└── tmp
    └── hw.cpp

3 directories, 3 files

관련 정보