실행 파일에 대한 출력 정보를 컴파일하고 파이프하는 방법

실행 파일에 대한 출력 정보를 컴파일하고 파이프하는 방법
....
....
checking whether gcc supports -Wl,--as-needed... yes
configure: using compiler=gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
configure: using CFLAGS=-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2
configure: using CPPFLAGS= -D_GNU_SOURCE
configure: using LDFLAGS=  -Wl,--as-needed
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: src/include/pg_config.h is unchanged
config.status: creating src/include/pg_config_ext.h
config.status: src/include/pg_config_ext.h is unchanged
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: src/interfaces/ecpg/include/ecpg_config.h is unchanged
config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking src/backend/port/posix_sema.c to src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

postgresql이 어떻게 컴파일되는지 대략적으로 알아보려고 합니다. ./configure를 실행하고 출력을 텍스트 파일로 파이프하기를 원합니다.

 sudo ./configure | /home/jian/fo1.txt

실수:

./configure: line 2885: printf: write error: Broken pipe

답변1

검색하신 연산자는 입니다 >. 그러면 명령의 출력이 특정 장치나 파일로 리디렉션됩니다.

sudo ./configure >output_file.txt

다른 파일에서 오류(STDERR)를 포착하려면 다음을 사용해야 합니다.

 sudo ./configure >output_file.txt 2>>output_err.txt

기존 파일에 출력을 추가하려면 다음을 사용해야 합니다.>>

sudo ./configure >>output_file.txt

답변2

sudo온라인 상태일 필요는 없습니다 ./configure.

귀하의 명령은 아마도 다음과 같아야 합니다:

./configure. |& tee home/jian/fo1.txt

root이전에 생성하려고 시도한 모든 소유 파일을 정리해야 할 수도 있습니다 .

sudo find . -maxdepth 1 -user root -ls
# when you're happy with the list of files, replace `-ls` with `-delete`.
sudo find . -maxdepth 1 -user root -delete 

관련 정보