Bash에서 stdout 을 잘린 파일로 리디렉션하려면 다음을 사용하는 것을 알고 있습니다.
cmd > file.txt
Bash에서 stdout 을 리디렉션 하여 파일에 추가하려면 다음을 사용하는 것을 알고 있습니다.
cmd >> file.txt
stdout 과 stderr 을 잘린 파일로 리디렉션하려면 다음을 사용하는 것이 좋습니다.
cmd &> file.txt
stdout 과 stderr 을 파일에 추가하여 리디렉션하는 방법은 무엇입니까? cmd &>> file.txt
나를 위해 일하지 않았다.
답변
cmd >>file.txt 2>&1
Bash는 다음과 같이 왼쪽에서 오른쪽으로 리디렉션을 실행합니다.
>>file.txt
:file.txt
추가 모드로 열고 리디렉션stdout
합니다.2>&1
: “현재가 는 곳”으로 리디렉션stderr
합니다 . 이 경우 추가 모드에서 열린 파일입니다. 즉, 현재 사용중인 파일 디스크립터를 재사용 합니다.stdout
&1
stdout
답변
Bash 버전에 따라 두 가지 방법이 있습니다.
클래식하고 휴대용 ( Bash pre-4 ) 방식은 다음과 같습니다.
cmd >> outfile 2>&1
Bash 4 로 시작하는 이식 불가능한 방법 은
cmd &>> outfile
(아날로그 &> outfile
)
좋은 코딩 스타일을 위해서는
- 이식성이 중요한지 결정 (그런 다음 고전적인 방법을 사용)
- Bash pre-4까지의 이식성이 문제인지 결정하십시오 (그런 다음 고전적인 방법을 사용하십시오)
- 어떤 구문을 사용하든 동일한 스크립트 내에서 변경하지 마십시오 (혼동!)
스크립트가 이미 #!/bin/sh
의도한지 여부에 관계없이 시작하는 경우 Bash 4 솔루션과 일반적으로 Bash 관련 코드는 갈 수 없습니다.
또한 Bash 4 &>>
는 구문이 짧기 때문에 새로운 기능이나 그와 유사한 것을 소개하지 않습니다.
구문은 (다른 리디렉션 구문 외에) http://bash-hackers.org/wiki/doku.php/syntax/redirection#appending_redirected_output_and_error_output에 설명되어 있습니다.
답변
Bash에서는 다른 파일로의 리디렉션을 명시 적으로 지정할 수도 있습니다.
cmd >log.out 2>log_error.out
추가는 다음과 같습니다.
cmd >>log.out 2>>log_error.out
답변
Bash 4 (ZSH 4.3.11)에서 :
cmd &>>outfile
상자에서 바로
답변
이것은 잘 작동합니다 :
your_command 2>&1 | tee -a file.txt
모든 로그를 file.txt에 저장하고 터미널에 덤프합니다.
답변
이 시도
You_command 1>output.log 2>&1
&> x.file 사용법은 bash4에서 작동합니다. 그 죄송합니다 : (
몇 가지 추가 팁이 있습니다.
0, 1, 2 … 9는 bash의 파일 설명자입니다.
0은 stdin
1 stdout
, 2는 2를 나타냅니다 stderror
. 3 ~ 9는 다른 임시 사용에 대비합니다.
연산자 >
또는 >>
(추가)를 사용하여 모든 파일 설명자를 다른 파일 설명 자나 파일로 리디렉션 할 수 있습니다 .
사용법 : < file_descriptor > > < 파일 이름 | & file_descriptor >
http://www.tldp.org/LDP/abs/html/io-redirection.html을 참조 하십시오
답변
거의 10 년 동안 아무도이 접근법을 아직 게시하지 않은 것에 놀랐습니다.
구 버전의 bash를 &>>
사용할 수없는 경우 다음을 수행 할 수도 있습니다.
(cmd 2>&1) >> file.txt
이 방법은 서브 쉘을 생성하므로 기존의 접근 방식보다 효율성이 떨어 지므로 cmd >> file.txt 2>&1
현재 쉘을 수정해야하는 명령 (예 🙂 cd
에서는 작동하지 pushd
않지만이 접근 방식은 더 자연스럽고 이해하기 쉽습니다.
- stderr를 stdout으로 리디렉션하십시오.
- 파일에 추가하여 새 stdout을 경로 재 지정하십시오.
또한 괄호는 특히 stdout 및 stderr을 다른 명령으로 파이프하려는 경우 순서의 모호성을 제거합니다.
