PowerShell의 Linux `tail`과 같은 명령이 있습니까?

PowerShell의 Linux `tail`과 같은 명령이 있습니까?

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>]

설명

이 구현은 전체 파일을 처리하는 대신 끝에서 줄을 읽어 파일 내용을 효율적으로 마무리합니다. 이 동작은 네트워크를 통해 대용량 로그 파일과 대용량 로그 파일을 효율적으로 추적하는 데 중요합니다. Waitcmdlet이 파일에 기록될 때 새 콘텐츠를 대기하고 표시하도록 매개변수를 지정할 수도 있습니다 . 대기 루프에서 벗어나려면 Ctrl+를 사용하세요 . C인코딩이 지정되지 않은 경우 cmdlet은 파일의 첫 번째 문자를 읽어 인코딩을 자동 감지하려고 시도합니다. 아직 파일에 문자가 기록되지 않은 경우 cmdlet은 기본적으로 유니코드 인코딩을 사용합니다. Encoding 매개변수를 통해 인코딩을 명시적으로 지정하여 이 동작을 재정의할 수 있습니다.

Get-FileTailtailPSCX를 설치하는 경우 기본적으로 별칭이 지정됩니다 .

관련 정보