moreutils의 스폰지는 어떻게 작동하나요?

moreutils의 스폰지는 어떻게 작동하나요?

Sponge는 표준 입력을 "취하여" 파일에 자동으로 기록하여 사람들이 이를 실행할 수 있도록 합니다 cat f|sponge a. 이것이 정확히 어떻게 이루어지는지 알고 싶습니다. 입력이 완료되면 어떻게 알 수 있나요?

답변1

strace또는 유사한 시스템 호출이 표시됩니다 sponge.write(2)입력하다read(2)표준 입력에서 임시 파일로 출력한 다음rename(2)입력이 끝나면 이 임시 파일을 원하는 출력 파일 이름으로 변경합니다. read(2)호출이 실패하거나 반환 되면 0(파일의 끝을 나타냄) 입력이 종료되고 sponge이름 바꾸기가 가능합니다.

관련 정보