모든 출력을 Bash의 파일로 리디렉션
리눅스에서 화면의 출력을 파일로 리디렉션하려면 다음 중 하나를 사용할 수 있습니다.>
또는tee
하지만 출력의 일부가 여전히 화면에 출력되고 파일에 기록되지 않는 이유를 잘 모르겠습니다.
모든 출력을 파일로 리디렉션할 수 있는 방법이 있습니까?
그 부분은 stderr에 쓰여져 있습니다, 사용하세요.2>
방향을 변경할 수 있습니다.예:
foo > stdout.txt 2> stderr.txt
또는 동일한 파일을 원하는 경우:
foo > allout.txt 2>&1
참고: (ba)sh에서 작동합니다. 셸에서 올바른 구문을 확인하십시오.
모든 POSIX 운영 체제에는 stdin, stdout 및 stderr의 3가지 스트림이 있습니다. stdin은 stdout 또는 stderr을 수용할 수 있는 입력입니다. stdout은 기본 출력으로 리디렉션됩니다.>
,>>
또는|
stderr은 예외가 명령에 전달되거나 손상될 수 있는 파일에 기록되지 않도록 별도로 처리되는 오류 출력입니다. 일반적으로 이 출력은 stdout이 리디렉션되더라도 특정 종류의 로그로 보내지거나 직접 덤프됩니다.둘 다 같은 위치로 리디렉션하려면 다음을 사용합니다.
$command &> /some/file
편집: 위 솔루션이 이식 가능하지 않다는 점을 지적해 준 Zack에게 감사합니다. 대신 다음을 사용하십시오.
$command > file 2>&1
오류를 침묵시키려면 다음을 수행합니다.
$command 2> /dev/null
콘솔 AND에서 출력을 파일로 가져오려면 다음과 같이 하십시오.file.txt
예를들면.
make 2>&1 | tee file.txt
참고:&
(에)2>&1
)에서 지정합니다.1
파일 이름이 아니라 파일 설명자입니다.
사용 -"require command here" > log_file_name 2>&1
유닉스/리눅스의 리디렉션 연산자에 대한 자세한 설명.
> 연산자는 일반적으로 출력을 파일로 리디렉션하지만 장치로 리디렉션할 수 있습니다.>>를 사용하여 추가할 수도 있습니다.
숫자를 지정하지 않으면 표준 출력 스트림이 가정되지만 오류를 리디렉션할 수도 있습니다.
> file redirects stdout to file
1> file redirects stdout to file
2> file redirects stderr to file
&> file redirects stdout and stderr to file
/dev/dev는 원하는 모든 입력을 가져다가 버리는 null 장치입니다.출력을 억제하는 데 사용할 수 있습니다.
학점은 2003년과 j.a.를 초과합니다.…
다음을 넣는 대신:
&>> your_file.log
선 뒤:
crontab -e
사용자:
#!/bin/bash
exec &>> your_file.log
…
BASH 스크립트의 시작 부분.
장점:스크립트 내에 로그 정의가 있습니다.깃 등에 좋습니다.
사용할 수 있습니다.exec
나중에 모든 명령의 모든 stdout/stderr 출력을 리디렉션하는 명령입니다.
샘플 스크립트:
exec 2> your_file2 > your_file1
your other commands.....
표준 오류일 수 있습니다.재연결할 수 있습니다.
... > out.txt 2>&1
명령:
foo >> output.txt 2>&1
출력에 추가됩니다.내용을 바꾸지 않고 txt 파일.
사용하다>>
추가할 항목:
command >> file
언급URL : https://stackoverflow.com/questions/6674327/redirect-all-output-to-file-in-bash
'IT' 카테고리의 다른 글
새로운 Firebase에서 xcode에서 다중 구성 파일을 사용하는 방법은 무엇입니까? (0) | 2023.07.17 |
---|---|
C에서 데이터 구조 직렬화 (0) | 2023.07.12 |
git/git-shell 관련 문제를 디버그하려면 어떻게 해야 합니까? (0) | 2023.07.12 |
BsonDocument를 공식 MongoDBC# 드라이버로 강력한 형식의 객체로 변환하는 방법은 무엇입니까? (0) | 2023.07.12 |
교차 오리진 요청 차단됨:동일한 오리진 정책은 http://127.0.0.1:8000/api/task-list/의 원격 리소스를 읽을 수 없습니다. (0) | 2023.07.12 |