임시 파일은 파이프와 어떻게 다른가요? [복사]

임시 파일은 파이프와 어떻게 다른가요? [복사]

데이터(예: )를 임시 파일로 보내면 stdout해당 데이터에 대해 일부 작업이 수행되고(임시 파일은 일부 프로세스에서 사용됨 stdin) 임시 파일이 삭제될 가능성이 높습니다.

파이프는 다음의 변형입니다.특수 파일, 괜찮아요체인명령을 함께 실행하십시오. 한 프로그램의 출력을 다른 프로그램의 입력으로 사용하십시오.

일반적으로 일반 파이프는 프로세스가 종료된 후 즉시 제거되지만 명명된 파이프(종종 "FIFO"로 명명됨, 반드시 100% 정확하지는 않음)는 프로세스가 종료된 후 특정 지점까지 활성 상태로 유지됩니다.

내 질문

임시 파일은 사용 후 삭제될 수 있지만 명명된 파이프는 삭제되지 않습니다. 그러나 임시 파일과 일반 파이프(또는 최소한 익명 파이프)의 차이점은 무엇입니까?

고쳐 쓰다

나는 "임시 파일"이 특수 파일이라고 잘못 생각했는데, 일반 파일이 아닙니다.다르게 사용됨;파이프와의 차이점은 다음과 같이 정의된다는 것입니다.특수 파일, 그리고 하나의 좁은 목적(링크)을 갖는 반면, 임시 파일은 링크 외에 다른 용도로 사용될 수 있지만 차이점을 설명하는 보다 "포괄적인" 방법이 있을 수 있습니다.

답변1

명명된 파이프는 일반 파일(또는 데이터에 "핸들"을 제공하는 네트워크 연결 또는 기타 모든 것)이 일시적일 수 있는 것처럼 임시적일 수 있습니다. 즉, 일종의 처리를 용이하게 하기 위해 스크립트로 설정할 수 있습니다. 그런 다음 스크립트가 종료되기 전에 삭제됩니다. 그러면 "임시(이름이 지정된) 파이프"가 됩니다.

명명된 파이프는 파일이므로 명명된 파이프(실제로 임시임)가 임시 파일이라고 생각할 수도 있습니다.

그러나 사람들이 "파일"을 언급할 때 이는 거의 항상 "일반 파일"(즉, 어떤 설명이 포함된 문서)을 의미하는 반면 명명된 파이프는아니요일반 파일.

셸의 파이프는 |한 유틸리티에서 다른 유틸리티로 데이터 흐름을 제공하는 데 사용되며 파이프가 사용되어 더 이상 필요하지 않으면 셸이 이와 관련된 모든 리소스를 해제하므로 일시적입니다.

마지막으로 파이프(이름이 있는 파일과 이름이 지정되지 않은 파일)와 일반 파일은 서로 다른 용도로 사용되며, 임시 데이터를 저장하기 위해 일반 파일을 사용해야 하는 경우와 명명된 파이프를 사용하여 데이터를 다른 프로세스에 전달해야 하는 경우가 언제인지 명확해야 합니다.

관련 정보