본문 바로가기
리눅스

tail (Unix)

by 다움위키 2023. 12. 23.

tail은 프로그램으로 텍스트 파일 또는 파이프된 데이터의 끝 부분을 표시하는 데 사용되는 유닉스, 유닉스-계열 시스템, FreeDOSMSX-DOS에서 사용할 수 있는 프로그램입니다.

Implementations

FreeDOS 버전은 M. Aitchison에 의해 개발되었습니다.

tail 명령은 역시 MSX-DOS 버전 2에 대해 ASCIIMSX-DOS2 도구의 일부입니다.

CCZE는 출력을 컬러로 표시하면서 tail-계열입니다.

pctail은 CCZE와 유사합니다. 그것은 syslog 출력을 꼬리 자르고 색깔을 입히는 Python으로 프로그래밍된 색깔 입힌 tail입니다.

Inotailinotify 커널 인터페이스의 더 이상 사용되지 않는 구현입니다. tail의 초기 구현은 새로운 데이터가 표시될 수 있는지 확인하기 위해 매초 폴링되었는데, tail 구현 initifiy 커널 인터페이스 Inotail은 더 이상 사용되지 않고 더 이상 유지관리되지 않기 때문입니다. Inotail은 2005년 8월 버전 2.6.13에 도입된 리눅스 커널inotify-interface를 사용하여 실제로 데이터가 있을 때만 새로운 데이터를 확인합니다.

MultiTail은 로그 파일을 색상으로 표시할 뿐만 아니라, 터미널 창을 하위 창으로 병합, 필터링, 스크롤백 및 분할할 수도 있습니다. 그것은 sed, watch, CCZE/pctail, grep, diff, Beeper 등의 단지 조합입니다.

Syntax

명령-구문은 다음과 같습니다:

 tail [options] <filename>

기본적으로, tail은 입력의 마지막 10줄을 표준 출력으로 출력할 것입니다. 명령줄 옵션과 함께, 출력의 양과 단위 (줄, 블록 또는 바이트)가 변경될 수 있습니다.

다음 예에서는 보고서의 마지막 줄이 오직 출력됩니다:

> tail -n1 report-13*
==> report-1301 <==
Total tons output for month of January '13 was 523

==> report-1302 <==
Total tons output for month of February '13 was 272

==> report-1303 <==
Total tons output for month of March '13 was 623

이 예제에서는 보고서의 마지막 4 문자를 출력하며, 파일이름을 자동으로 표시하지 않습니다. 카운트는 각 줄 끝에 개행 문자를 포함하므로 출력에는 예상할 수 있는 선행 공백이 포함하지 않음을 주의하십시오.

> tail --silent -c4 report*
523
272
623

이 예에서는 두 번째 줄 이후의 모든 보고서 줄을 보여줍니다:

tail -n +2 report

이전 구문 (썬 솔라리스의 이전 버전에서 여전히 사용되며며 -n 옵션이 지원되지 않음)을 사용하여, filename의 마지막 20 줄과 마지막 50 바이트는 다음 명령과 함께 표시될 수 있습니다:

tail -20 filename
tail -50c filename

어쨌든, 이 구문은 이제 더 이상 사용되지 않으며 POSIX 1003.1-2001 표준을 준수하지 않습니다. 심지어 현재 버전에서 여전히 지원되더라도, 다른 옵션 (예를 들어, -f, 아래 참조)과 함께 사용하면, 이들 스위치가 전혀 작동하지 않을 수 있습니다.

모든 유닉스 명령과 마찬가지로, 특정 옵션 및 동작에 대해 실행 중인 시스템의 매뉴얼 페이지를 사용하십시오.

File monitoring

tail은 파일을 모니터링할 수 있는 두 개의 특수 명령줄 옵션 -f 및 -F (Follow)를 가집니다. 마지막 몇 줄만 표시하고 종료하는 대신 tail은 줄을 표시하고 그런-다음 파일을 모니터링합니다. 다른 프로세스에 의해 파일에 새 줄이 추가되면, tail이 디스플레이를 업데이트합니다. 이것은 로그 파일을 모니터링하는 데 특히 유용합니다. 고대 버전의 tail은 기본적으로 1초마다 파일을 폴링하지만 버전 7.5부터 GNU coreutils에서 tail은 2005년 8월 리눅스 커널 버전 2.6.13에 도입된 inotify 인프라를 지원합니다.

다음 명령은 messages의 마지막 10줄을 표시하고 messages에 새 줄이 추가되면 디스플레이에 새 줄을 덧붙일 것입니다:

tail -f /var/adm/messages

로그가 재생성되거나, 이름이 바뀌거나, 로그 회전의 일부로 제거된 경우에도 로그를 계속 추적하기 위해, 최소한 BSD 및 GNU 구현에서는 사용자가 회전하는 로그 파일을 추적하는 경우에 유용한 -F 옵션을 제공합니다:

tail -F /var/adm/messages

tail을 모니터링하는 동안 그것을 중단하기 위해, Ctrl+C로 침입하십시오. 이 명령은 &를 갖는 "백그라운드에서" 실행될 수 있으며, 작업 제어를 참조하십시오.

만약 사용자가 모니터링할 명령의 결과를 가지면, watch 명령이 사용될 수 있습니다.

auto-revert-tail-mode라고 불리우는 tail -f의 기능을 에뮬레이트하는 GNU Emacs 모드가 있습니다.

See also

External links