sudo tee 및 Heredoc을 사용하여 기존 파일에 추가

sudo tee 및 Heredoc을 사용하여 기존 파일에 추가

~에서Bash에서 스크립트를 생성하고 sudo가 필요한 위치에 저장합니다.제가 좋아하는 방법은 다음과 같습니다.

sudo tee "$OUTFILE" > /dev/null <<'EOF'
foo
bar
EOF

그러나 이 메소드를 사용하여 기존 파일 $OUTFILE에 추가하고 싶습니다. 위의 방법은 기존 파일 $OUTFILE을 덮어씁니다.

답변1

재정의하는 대신 연결하는 옵션을 원합니다 -a.tee

답변2

를 사용하려는 경우 먼저 출력용 컨테이너로 전달하여 cat다음 경로로 이동하세요 .$OUTFILE

$ OUTFILE=/path/to/restricted_write_access/file
$ sudo out=$OUTFILE sh -c 'cat << EOF >> $out
foo
bar
EOF'

답변3

tee에서는 /dev/null에 대한 스트림을 열어야 합니다. 간단한 방법으로 이를 수행할 수 있습니다.cat

cat <<EOF >> $OUTFILE
foo
bar
EOF

키보드를 저장하세요!

관련 정보