![더 적은 비용으로 하위 디렉터리의 파일을 열 수 있습니까?](https://linux55.com/image/62952/%EB%8D%94%20%EC%A0%81%EC%9D%80%20%EB%B9%84%EC%9A%A9%EC%9C%BC%EB%A1%9C%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%97%B4%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는 때때로 다음과 같은 것을 사용하여 작은 파일 세트를 빠르게 탐색하기 위해 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 {} +