이것은 관련 답변을 기반으로합니다 tee
. 일을 더 쉽게하기 위해 작은 스크립트를 작성하고 (나는 그것을 호출한다 suwrite
) 허가 /usr/local/bin/
를 +x
받아 넣었다 .
#! /bin/sh
if [ $# = 0 ] ; then
echo "USAGE: <command writing to stdout> | suwrite [-a] <output file 1> ..." >&2
exit 1
fi
for arg in "$@" ; do
if [ ${arg#/dev/} != ${arg} ] ; then
echo "Found dangerous argument ‘$arg’. Will exit."
exit 2
fi
done
sudo tee "$@" > /dev/null
코드 의 USAGE 에 표시된 것처럼 출력을이 스크립트에 파이프하고 원하는 수퍼 유저가 액세스 할 수있는 파일 이름을 파이프하면됩니다 sudo
.
echo test | suwrite /root/test.txt
이것은 간단한 래퍼이기 때문에 추가 할 tee
수있는 tee의 -a
옵션 도 허용 하며 동시에 여러 파일에 쓰기를 지원합니다.
echo test2 | suwrite -a /root/test.txt
echo test-multi | suwrite /root/test-a.txt /root/test-b.txt
또한 /dev/
이 페이지의 의견 중 하나에서 언급 한 문제에 대한 장치 쓰기를 막는 간단한 보호 기능도 있습니다 .