모든 bash 스크립트 출력 (스크립트 내부에서)을 두 개의 파일로 리디렉션합니다. 하나는 추가하고 하나는 다시 작성합니다. 그러나 콘솔에 출력을 버리십시오

신경 전달 물질

bash 스크립트의 표준 및 오류 출력을 파일로 쉽게 리디렉션 할 수 있으며 간단한 exec명령문 으로 콘솔에 출력을 삭제할 수 있습니다 .

exec &>>/var/log/backup.log

그러나 exec첫 번째 파일에 추가하고 두 번째 파일을 다시 작성하여 두 파일에 쓰는 방법은 무엇입니까? 아마 약간의 tee마법을 사용해야 할 것입니다. 또한 콘솔을 음소거하는 방법도 찾아야합니다.

그 이유는 내 백업 스크립트 때문입니다. 주 로그에 최신 백업 이벤트를 추가하고 이러한 이벤트 만 현재 백업 로그 (이전 내용 지우기)에 기록하고 각 백업 세션을 다시 작성해야합니다.

오리온

할 수 있습니다. 프로세스 대체가 필요합니다. tee나머지는 덮어 쓴 파일 을 호출 하고 리디렉션 하는 하위 프로세스로 스트림을 리디렉션합니다.

exec &> >(tee -a backup.log > overwritten.log)

스크립트가 종료되거나 다른 리디렉션이 설정 될 때까지 스트림이 열려 있기 때문에 전체 스크립트에서 파일을 한 번만 덮어 씁니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관