Bash 스크립트를 작성하거나 Linux 명령줄에서 작업할 때 가장 일반적인 작업 중 하나는 파일을 읽고 쓰는 것입니다.
이 문서에서는 리디렉션 연산자와 tee 명령을 사용하여 Bash에서 파일에 텍스트를 쓰는 방법을 설명합니다.
리디렉션 연산자를 사용하여 파일에 쓰기
Bash에서 출력 리디렉션을 사용하면 명령에서 출력을 캡처하여 파일에 쓸 수 있습니다.
출력을 파일로 리디렉션하고 쓰는 일반적인 형식은 다음과 같습니다.
output > filename
output >> filename
> 리디렉션 연산자는 지정된 파일에 출력을 기록합니다. 파일이 있으면 길이가 0으로 잘립니다. 그렇지 않으면 파일이 생성됩니다. 중요한 파일을 덮어쓸 수 있으므로 이 연산자를 사용할 때 특히 주의하십시오.
리디렉션 연산자는 지정된 파일에 출력을 추가합니다. 파일이 없는 경우 파일이 생성됩니다.
파일에 대한 쓰기 권한이 있어야 합니다. 그렇지 않으면 권한 거부 오류가 발생합니다.
다음은 echo 명령의 출력을 파일로 리디렉션하는 방법을 보여 주는 간단한 예입니다.
echo "this is a line" > file.txt
기존 파일을 덮어쓰지 않으려면 집합이 내장된 "블로버 없음" 옵션을 실행하십시오.
set -o noclobber
echo "this is a line" > file.txt
# bash: file.txt: cannot overwrite existing file
>| 연산자를 사용하면 Bash "noclober" 옵션을 재정의할 수 있습니다.
set -o noclobber
echo "this is a line" >| file.txt
>> 연산자는 파일을 덮어쓰는 대신 파일 끝에 출력을 추가합니다.
echo "this is a line" >> file.txt
printf 명령을 사용하여 복잡한 출력을 생성합니다.
printf "Hello, I'm %s.\n" $USER > file.txt
파일에 여러 줄을 쓰려면 Here 문서(Heredoc) 리디렉션을 사용하십시오.
예를 들어 cat 명령에 내용을 전달한 후 파일에 쓸 수 있습니다.
cat << EOF > file.txt
The current working directory is: $PWD
You are logged in as $(whoami)
EOF
행을 추가하려면 파일 이름 앞에 >>와 함께 >를 변경합니다.
cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as $(whoami)
EOF
다음 명령의 출력을 파일에 쓸 수 있습니다.
date +"Year: %Y, Month: %m, Day: %d" > file.txt
date 명령의 출력이 파일에 기록됩니다.
tee 명령을 사용하여 파일에 쓰기
tee 명령은 표준 입력에서 읽고 표준 출력과 하나 이상의 파일에 동시에 씁니다.
echo "this is a line" | tee file.txt
tee 명령의 기본 동작은 > 연산자와 마찬가지로 지정된 파일을 덮어쓰는 것입니다. 출력을 파일에 추가하려면 -a(--append) 옵션을 사용하여 명령을 실행합니다.
echo "this is a line" | tee file.txt
티가 표준 출력에 쓰기를 원하지 않으면 /dev/null로 리디렉션할 수 있습니다.
echo "this is a line" | tee file.txt >/dev/null
텍스트를 둘 이상의 파일에 쓰려면 파일을 tee 명령의 인수로 지정합니다.
echo "this is a line" | tee file_1.txt file_2.txt file_3.txt
tee 명령어의 또 다른 장점은 sudo와 함께 사용할 수 있고 다른 사용자가 소유한 파일에 쓸 수 있다는 것입니다. 쓰기 권한이 없는 파일에 텍스트를 추가하려면 tee 앞에 sudo를 추가합니다.
echo "this is a line" | sudo tee file.txt
echo 명령 출력은 tee에 입력으로 전달되며, tee는 sudo 권한을 상승시키고 텍스트를 파일에 씁니다.
Linux에서 파일에 텍스트를 쓰려면 > 및 >> 리디렉션 연산자 또는 tee 명령을 사용합니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Ubuntu 20.04 : Microsoft Edge Browser 설치 방법, 예제, 명령어 (0) | 2023.01.13 |
---|---|
Linux : Bash : wait 명령어, 예제, 사용 방법 (0) | 2023.01.11 |
Linux : Bash : read 명령어, 사용 방법, 예제 (0) | 2023.01.07 |
Linux : nmap 명령어, 사용 방법, 예제 (1) | 2023.01.05 |
Linux : Chattr 명령어, 사용 방법, 예제 (파일 속성) (0) | 2023.01.04 |