내용을 삭제하지 않고 명령 출력을 기존 파일로 리디렉션하려면 어떻게 해야 합니까? [복사]

내용을 삭제하지 않고 명령 출력을 기존 파일로 리디렉션하려면 어떻게 해야 합니까? [복사]

checksums.txt나중에 데이터의 무결성을 확인하기 위해 일부 파일을 백업하고 체크섬 파일을 생성하고 있습니다 . 그러나 백업이 수백 개의 파일로 구성되어 있으므로 각 체크섬을 파일에 수동으로 붙여넣는 것은 불편합니다. 그래서 주변에 문의한 후 출력을 체크섬 파일 제안으로 리디렉션하여 프로세스를 단순화하는 아이디어를 얻었습니다.

$ md5sum file > checksums.txt

또는

$ sha512sum file > checksums.txt

그러나 이렇게 하면바꾸다파일의 내용 checksums.txt과 이 경우 파일의 체크섬을 file대신 사용하고 싶습니다.추가의filechecksums.txt내용을 삭제하지 않고 to의 체크섬입니다 . 그래서 내 질문은 다음과 같습니다어떻게 해야 하나요?

그리고 하나 더. 저는 기본 사용자이므로 (가능한 경우에만) 따라하기 쉬운 제안을 해주시기 바랍니다.

답변1

파일에 추가하려면 >>.

그래서 당신의 예는

$ md5sum file >> checksums.txt

그리고

$ sha512sum file >> checksums.txt

답변2

연산자 옆에 >>추가 모드로 파일을 엽니다.@Thomas가 답변했듯이, 또 다른 옵션은 연산자를 사용하여 파일을 >단 한 번만 열고 두 명령 모두에 대해 열어 두는 것입니다.

exec 3> checksums.txt

파일 설명자 3에서 파일을 열고 잘라냅니다. 그런 다음:

md5sum file1 >&3

file1의 md5sum을 여기에 씁니다.

md5sum file2 >&3

(동일한 쉘에서 실행하는 경우) file2 md5sum이 추가됩니다.

그런 다음 다음을 수행할 수 있습니다.

exec 3>&-

파일 설명자를 닫습니다. >전체 stdout(파일 설명자 1, 연산자의 기본값)을 리디렉션하여 동일한 작업을 수행 할 수도 있습니다.명령 그룹:

{ md5sum file1; md5sum file2; } > checksums.txt

또는 사용서브쉘바꾸다명령 그룹:

(md5sum file1; md5sum file2) > checksums.txt

관련 정보