더 적은 비용으로 하위 디렉터리의 파일을 열 수 있습니까?

더 적은 비용으로 하위 디렉터리의 파일을 열 수 있습니까?

나는 때때로 다음과 같은 것을 사용하여 작은 파일 세트를 빠르게 탐색하기 위해 less를 사용합니다.

less brscan/*/*

:n그런 다음 파일을 반복 해서 사용했습니다.

다음과 같은 폴더가 있으면

brscan/
├── DEBIAN
│   ├── conffiles
│   ├── control
│   ├── postinst
│   ├── postrm
│   └── prerm
├── etc
│   └── opt
├── opt
│   └── brother
└── usr
    ├── bin
    └── lib64

이 예에서는 less폴더의 파일이 선택됩니다.DEBIAN

DEBIAN
       ├── conffiles
       ├── control
       ├── postinst
       ├── postrm
       └── prerm

하지만 다른 하위 디렉터리로 이동하지 않고 오류만 발생합니다.

brscan/etc는 디렉터리입니다
. brscan/opt는 디렉터리입니다.
brscan/usr은 디렉터리입니다.

이러한 하위 디렉터리에 있는 파일의 페이징을 줄이는 것이 가능합니까?

나는 다음과 같은 것을 생각하고 있었다

find brscan/ | xargs less

하지만 작동하지 않습니다. 여전히 디렉토리를 선택하고 있습니다.

답변1

-not -type d검색 결과에서 디렉터리가 생략되도록 지정합니다.

find -not -type d | xargs less

또는 더 나은:

find -not -type d -print0 | xargs -0 less

공백이 있는 파일 이름을 더 잘 처리합니다.

답변2

그리고 bash,글로벌 스타옵션이 활성화되면 다음을 수행할 수 있습니다.

shopt -s globstar
less brscan/**/*

그러나 여기에는 디렉토리도 포함됩니다. 다음을 사용하여 zsh일반 파일의 확장자만 필터링할 수 있습니다 .

less brscan/**/*(.)

너무 많은 파일이 반환되면 위의 모든 작업이 실패합니다. 안전한 방법은 다음을 사용하는 것입니다 find.

find brscan -type f -exec less {} +

관련 정보