
PowerShell에서 Linux의 꼬리 동작을 어떻게 복제할 수 있나요?
로그 파일( )을 작성하는 애플리케이션을 실행 중이며 로그 파일 error.log
의 마지막 줄을 확인하고 콘솔 업데이트 변경 사항을 유지하고 싶습니다.
tail -f filename
그러면 PowerShell과 같은 기능이 있나요 ?
답변1
PowerShell 3부터 Get-Content
(별칭 gc
) cmdlet은 파일 시스템에서 사용될 때 -Tail
및 매개 변수를 지원합니다. -Wait
로 찾아보세요 help gc
.
답변2
PSv3 이후의 기본 PS는 다음과 같습니다.
Get-Content -Last n
그것도 빠릅니다. PSv2 이하에서는 다음과 같이 해야 합니다.
Get-Content filename | Select -Last n
하지만 여기에는 몇 가지 주의 사항이 있습니다. 예를 들어, 파일에 대한 새로운 변경 사항을 차단하고 기다릴 수 없으며 마지막 줄을 표시하기 전에 처음부터 파일을 완전히 읽어야 한다는 점에서 그다지 효율적이지 않습니다.
PSCXGet-FileTail
매개변수 가 있는 명령이 있습니다 -Wait
:
이름
Get-FileTail
개요
PSCX Cmdlet: 파일 내용을 추적합니다. 선택적으로 새 내용을 기다립니다.
통사론
Get-FileTail [-Path] <String[]> [-Count <Int32>] [-Encoding <EncodingParameter>] [-LineTerminator <String>] [-Wait] [<CommonParameters>] Get-FileTail [-LiteralPath] <String[]> [-Count <Int32>] [-Encoding <EncodingParameter>] [-LineTerminator <String>] [-Wait] [<CommonParameters>]
설명
이 구현은 전체 파일을 처리하는 대신 끝에서 줄을 읽어 파일 내용을 효율적으로 마무리합니다. 이 동작은 네트워크를 통해 대용량 로그 파일과 대용량 로그 파일을 효율적으로 추적하는 데 중요합니다.
Wait
cmdlet이 파일에 기록될 때 새 콘텐츠를 대기하고 표시하도록 매개변수를 지정할 수도 있습니다 . 대기 루프에서 벗어나려면 Ctrl+를 사용하세요 . C인코딩이 지정되지 않은 경우 cmdlet은 파일의 첫 번째 문자를 읽어 인코딩을 자동 감지하려고 시도합니다. 아직 파일에 문자가 기록되지 않은 경우 cmdlet은 기본적으로 유니코드 인코딩을 사용합니다. Encoding 매개변수를 통해 인코딩을 명시적으로 지정하여 이 동작을 재정의할 수 있습니다.
Get-FileTail
tail
PSCX를 설치하는 경우 기본적으로 별칭이 지정됩니다 .