![재귀 검색은 숨겨진 파일을 찾지 않거나 숨겨진 디렉터리로 재귀적으로 검색하지 않습니다.](https://linux55.com/image/44561/%EC%9E%AC%EA%B7%80%20%EA%B2%80%EC%83%89%EC%9D%80%20%EC%88%A8%EA%B2%A8%EC%A7%84%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%B0%BE%EC%A7%80%20%EC%95%8A%EA%B1%B0%EB%82%98%20%EC%88%A8%EA%B2%A8%EC%A7%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A1%9C%20%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EA%B2%80%EC%83%89%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
디렉토리를 재귀적으로 검색하여 숨겨진 파일이 아니고 숨겨진 디렉토리에 없는 모든 파일을 찾고 싶습니다. 파일을 숨기기 위해 기본 이름 제외를 사용해 보았지만 find . -type f -not -name '.*'
여전히 숨겨진 디렉터리로 반복됩니다.
dir/
file.py
.hidden_file
.hidden_dir/
file.c
나는 출력을 다음과 같이 원한다:
./dir/file.py
그러나 나는 다음을 얻습니다.
./dir/file.py
./dir/.hidden_dir/file.c
편집: 파일을 나열하고 싶습니다.-type f
답변1
재귀적으로 사용하고 싶지 않은 디렉토리를 "가지치기"해야 합니다.
find dir -name '.*' -prune -o -print
일반적으로 true를 반환하기 때문에 -prune
with와 함께 사용되므로 short-circuit OR과 결합하면 원하는 숨겨진 파일/디렉토리를 건너뛰는 효과가 -o
있습니다 .-print