ls -R 디렉토리명 | grep -m 1 -F [2pir]
puTTy에서 명령어를 직접 사용할 때는 오류가 보이지 않고, 파이썬을 통해서 사용하면 log를 찍어보았을 때 ls : 파이프가 깨어짐 이런 오류가 보인다. 하지만 두 경우 모두 작동은 정상적으로 된다.
# for문 안에서
cmd_str = f"ls -R {path_dir} | grep -m 1 -F [2pir]"
if os.system(cmd_str) != 0: # 아무것도 찾지 못했으면
continue
파이프를 그림과 함께 잘 설명해둔 블로그가 있어서 링크를 첨부한다.
https://gracefulprograming.tistory.com/92
결론만 말하면 무해한 오류라고 한다.
A | B
프로세스 A의 출력은 프로세스 B에 입력으로 전달된다. 프로세스 B가 프로세스 A의 모든 출력을 읽기 전에 종료되는 경우, 프로세스 A는 출력 파이프가 조기에 닫혔다고 에러를 보여줄 수 있다. 이런 오류는 기본적으로 무해하다.
출처 :
https://stackoverflow.com/questions/15726003/grep-write-error-broken-pipe-with-subprocess