tee 를 이용한 출력 추가 (Append)
기본적으로 tee 명령어는 사용될 때마다 대상 파일을 덮어씁니다. 그러나 많은 시나리오에서 내용을 바꾸는 대신 기존 파일에 새로운 정보를 추가하고 싶을 수 있습니다. 이럴 때 -a (추가) 옵션이 유용합니다.
추가 옵션 이해
아직 프로젝트 디렉토리에 있지 않다면 이동합니다:
cd /home/labex/project
먼저 시스템 정보가 있는 파일을 만들어 보겠습니다:
uname -a | tee system_info.log
이 명령어는 터미널에 시스템 정보를 표시하고 system_info.log에 저장합니다. 출력은 다음과 유사하게 보일 것입니다 (출력은 다를 수 있습니다):
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
이제 파일의 내용을 확인해 보겠습니다:
cat system_info.log
동일한 시스템 정보를 볼 수 있습니다.
파일에 정보 추가하기
이제 -a 옵션을 사용하여 이 파일에 더 많은 정보를 추가해 보겠습니다:
echo "Date and time: $(date)" | tee -a system_info.log
이것은 다음과 유사한 내용을 표시합니다:
Date and time: Wed May 3 14:22:34 UTC 2023
-a 플래그는 tee에게 출력을 덮어쓰는 대신 파일에 추가하도록 지시합니다.
파일의 내용을 다시 확인해 보겠습니다:
cat system_info.log
이제 시스템 정보와 날짜를 모두 볼 수 있습니다:
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
더 많은 정보 추가하기
로그 파일에 더 많은 정보를 추가해 보겠습니다:
echo "Disk usage:" | tee -a system_info.log
df -h | tee -a system_info.log
이것은 디스크 사용량 정보를 표시하고 로그 파일에 추가합니다. 출력은 시스템에 따라 다르지만 다음과 유사하게 보일 수 있습니다:
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
로그 파일의 내용을 다시 한 번 확인해 보겠습니다:
cat system_info.log
이제 추가한 모든 정보를 볼 수 있습니다:
Linux ubuntu 5.15.0-1031-aws #35-Ubuntu SMP Fri Feb 10 02:14:02 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Date and time: Wed May 3 14:22:34 UTC 2023
Disk usage:
Filesystem Size Used Avail Use% Mounted on
/dev/root 19G 5.8G 13G 32% /
tmpfs 494M 0 494M 0% /dev/shm
tmpfs 198M 1.1M 197M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 5.2M 100M 5% /boot/efi
tmpfs 100M 4.0K 100M 1% /run/user/1000
명령어 구조 이해
tee로 추가하는 구문은 다음과 같습니다:
command | tee -a filename
여기서:
command는 출력을 생성하는 모든 명령어입니다.
| (파이프) 는 명령어의 출력을 tee로 보냅니다.
tee는 명령어 자체입니다.
-a는 파일을 덮어쓰는 대신 추가하는 옵션입니다.
filename은 출력이 추가될 파일의 이름입니다.
이 접근 방식은 특히 다음과 같은 경우에 유용합니다:
- 시간에 따라 로그 파일 구축
- 여러 명령의 출력을 단일 파일에 캡처
- 시스템 상태 또는 작업 기록 유지