logo

Bash 파일에 쓰기

bash 셸에서 명령을 실행하면 일반적으로 해당 명령의 출력이 터미널에 인쇄되므로 즉시 읽을 수 있습니다. 그러나 bash는 bash 명령의 출력을 로그 파일로 '리디렉션'하는 옵션도 제공합니다. 나중에 필요할 때마다 검토할 수 있도록 출력을 텍스트 파일로 저장할 수 있습니다.

방법 1: 파일에만 출력 쓰기

Bash 명령의 출력을 파일에 쓰려면 직각 괄호 기호(>) 또는 이중 직각 기호(>>)를 사용할 수 있습니다.

직각 브래킷 기호(>)

bash 명령의 출력을 디스크 파일에 쓰는 데 사용됩니다. 지정된 이름의 파일이 없으면 동일한 이름의 새 파일을 만듭니다. 지정된 이름의 파일이 있으면 파일 내용을 덮어씁니다.

이중 직각 기호(>>)

bash 명령의 출력을 파일에 기록하고 파일의 기존 내용에 출력을 추가하는 데 사용됩니다. 파일이 없으면 지정된 이름으로 새 파일을 만듭니다.

기술적으로 이 두 연산자는 모두 'stdout(표준 출력)'을 파일로 리디렉션합니다.

간단한 방법으로, 처음으로 파일을 작성할 때 이전 데이터가 파일에 존재하지 않도록 하려면 오른쪽 꺾쇠 괄호 기호(>)를 사용해야 합니다. 파일에 이미 내용이 있으면 내용을 덮어씁니다. 그리고 추가 스크립트에서는 이중 직각 기호(>>)를 사용하여 데이터를 파일에 추가할 수 있습니다.

'ls' 명령은 현재 디렉터리에 있는 모든 파일과 폴더를 인쇄하는 데 사용됩니다. 그러나 오른쪽 꺾쇠 괄호 기호(>)와 함께 'ls' 명령을 실행하면 파일 및 폴더 목록이 화면에 인쇄되지 않습니다. 이는 아래와 같이 우리가 지정한 파일에 출력을 저장합니다.

배쉬 스크립트

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Checking the content of the file gedit output_file.txt 

산출

Bash 쓰기 파일

여기에 표시된 대로 'ls' 명령의 출력이 파일로 리디렉션됩니다. 파일 내용을 터미널에 인쇄하려면 다음 형식으로 'cat' 명령을 사용할 수 있습니다.

배쉬 스크립트

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Printing the content of the file cat $output 

산출

Bash 쓰기 파일

사용 가능한 데이터를 삭제하지 않고 여러 명령의 출력을 단일 파일로 리디렉션하려면 >> 연산자를 사용할 수 있습니다. 지정된 파일에 시스템 정보를 추가한다고 가정하면 다음과 같은 방법으로 수행할 수 있습니다.

배쉬 스크립트

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls > $output #Appending the system information uname -a >> $output #Checking the content of the file gedit output_file.txt 

산출

Bash 쓰기 파일

여기서는 두 번째 명령의 결과가 파일 끝에 추가됩니다.

라텍스 매트릭스

이 프로세스를 여러 번 반복하여 파일 끝에 출력을 계속 추가할 수 있습니다.

방법 2: 정상적으로 출력을 인쇄하고 파일에 쓰기

어떤 사람들은 터미널에 명령의 출력이 없기 때문에 > 또는 >> 연산자를 사용하여 파일에 출력을 쓰는 것을 좋아하지 않을 수 있습니다. 이것이 바로 'tee' 명령이 사용되는 이유입니다. 'tee' 명령은 수신한 입력을 화면에 인쇄하는 데 사용됩니다. 동시에 출력을 파일로 저장할 수 있습니다.

배쉬 스크립트

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt #Write data to a file ls | tee $output 

산출

Bash 쓰기 파일

이는 > 연산자와 마찬가지로 파일의 내용을 무시하지만 화면에 출력을 인쇄하기도 합니다.

tee 명령을 사용하여 파일 내용을 제거하지 않고 파일에 출력을 쓰려면 출력을 터미널에도 인쇄하는 다음 형식을 사용할 수 있습니다.

배쉬 스크립트

 #!/bin/bash #Script to write the output into a file #Create output file, override if already present output=output_file.txt echo '<<>>' | tee -a $output #Write data to a file ls | tee $output echo | tee -a $output #Append System Information to the file echo '<<>>' | tee -a $output uname | tee -a $output 

산출

Bash 쓰기 파일

그러면 파일 끝에 출력이 추가될 뿐만 아니라 화면에 출력도 인쇄됩니다.