현재 특정 MIME 유형의 파일을 삭제하기 위해 복잡한 find 명령을 사용하고 있습니다.
find -type f -exec bash -c '
for f; do
file=$(file -- "$f")
if [[ $file =~ ^$f:\ "C source" ]]; then
echo rm -- "$f"
fi
done
' bash {} +
내 요구 사항에 따라 Python을 사용하여 다음 명령을 실행하고 싶습니다. 하위 프로세스를 사용하여 명령을 호출하려고 하면 출력이 나오지 않습니다. 제가 Linux를 처음 접했기 때문에 이것이 올바른 접근 방식인지 잘 모르겠습니다. 어떤 도움이라도 대단히 감사하겠습니다.
from subprocess import call
call('''
find -type f -exec bash -c '
for f; do
file=$(file -- "$f")
if [[ $file =~ ^$f:\ "ASCII text" ]]; then
echo rm -- "$f"
fi
done
' bash {} +
''', shell=True)
현재 디렉토리에 파일 세트가 있고 동일한 디렉토리에서 이 Python 스크립트를 실행하고 있습니다. "C 소스"에는 일치하는 항목이 거의 없기 때문에 일련의 파일 이름이 출력될 것으로 예상됩니다.
답변1
기능하위 프로세스.호출()반환반환 코드(0은 성공을 의미하고, 0이 아닌 경우 오류가 발생했음을 의미합니다.)
명령 출력을 원하면 이 기능을 사용하십시오하위 프로세스.check_output(...).
추신: Python으로 작성하는 것을 고려하지 않으셨나요? 표준 모듈경로 라이브러리이에 매우 유용합니다.