cat은 모든 파일 형식을 병합하지 않지만 어떤 파일 형식을 병합합니까?

cat은 모든 파일 형식을 병합하지 않지만 어떤 파일 형식을 병합합니까?

GNU/Linux에서는 cat파일과 작업물이 마술적인 방식으로 결합됩니다. 적어도 나에게는 다음과 같습니다.

cat part_* > /destination/file.xyz

동일한 파일 형식의 원본 및 대상 파일을 갖는 것은 .ogg일반 mpg텍스트 파일과 같은 형식의 매력처럼 작동합니다. 하지만 다른 파일에서 매우 흥미롭고 이상한 결과를 얻었습니다.

  • .flac→ 결합된 파일이 초기 파일의 길이를 표시한 다음 첫 번째 파일의 길이를 계속 표시하면서 다른 모든 부분을 따라 재생된다는 점을 제외하면 모든 것이 잘 작동합니다(당시 CD의 "숨겨진 트랙"과 같은).

  • .pdfcat→ 오류 메시지 없이 종료되며 대상 이름이 있는 첫 번째 파일(명령에서 그 뒤에 오는 파일)만 표시하고 복사본은 다른 이름으로 저장됩니다.

질문cat: 시행착오 외에 어떤 파일 형식을 병합할 수 있고 어떤 파일 형식을 병합할 수 없는지 알아낼 수 있는 다른 방법이 있습니까 ?

지금까지 나는 파일의 특정 헤더 형식에 많은 것이 달려 있다는 것을 이해했습니다. 하지만 "모든 실행 파일이 헤더로 시작해야 한다고 생각했어요?!"라는 의문이 듭니다.

답변1

물어,

시행착오 외에도 cat과 병합할 수 있는 파일 형식과 병합할 수 없는 파일 형식을 알아낼 수 있는 다른 방법이 있습니까?

당신이 쓴 다른 질문에 대한 댓글에서,

혹시 어떤 고양이가 칭호로 간주될 수 있고 어떤 고양이가 그렇지 않은지 말해주실 수 있나요?

cat파일 형식을 모르거나 신경 쓰지 않는 것이 근본적인 문제라고 생각합니다 . 하나 이상의 파일을 가져와 소스 파일의 연속 복사본 결과인 출력 스트림을 생성합니다.

그런 다음 응용 프로그램은 결과 파일을 처리하여 병합된 결과 파일이 "합리적인"지 여부를 결정합니다.

예를 들어 PDF 파일을 병합하려면 다음과 같은 방법을 사용해야 합니다 pdftk. 간단한 연결은 작동하지 않습니다. 아시다시피 일부 유형의 디지털 음악 파일은 연결할 수 있지만 다른 유형의 음악 파일은 연결할 수 없습니다. 어떤 경우에는 한 플레이어가 연결된 파일을 처리할 수 있지만 다른 플레이어는 처리할 수 없는 경우가 있습니다. 간단한 규칙은 없습니다.

답변2

기본적으로 자신의 질문에 대답했습니다. 파일 형식에 헤더가 있는지 여부에 따라 다릅니다.

"실행 가능"에 관해서는... 쉘 스크립트는 "실행 가능"합니다. 쉘은 첫 번째 줄에 주석이 있기 때문에 이를 실행하는 방법을 알고 있으며, 두 스크립트를 병합하면 의미 있는 결과를 얻을 수 있습니다. 그러나 바이너리 형식 실행 파일(예: elf)과 결합하면 제대로 작동하지 않습니다.

관련 정보