나는 보통 watch
리눅스 유틸리티를 사용하여 n 초마다 명령의 출력을 반복적으로 볼 수 있습니다.watch df -h /some_volume/
그러나 다음 watch
과 같은 파이프 일련의 명령 으로 사용할 수없는 것 같습니다.
$ watch ls -ltr|tail -n 1
내가 그렇게하면 watch
실제로보고 ls -ltr
있고 출력이 전달되어 tail -n 1
아무것도 출력하지 않습니다.
내가 이것을 시도하면 :
$ watch (ls -ltr|tail -n 1)
나는 얻다
$ watch: syntax error near unexpected token `ls'
그리고 다음 중 하나라도 다른 이유로 실패합니다.
$ watch <(ls -ltr|tail -n 1)
$ watch < <(ls -ltr|tail -n 1)
$ watch $(ls -ltr|tail -n 1)
$ watch `ls -ltr|tail -n 1)`
그리고 마지막으로 이렇게하면 :
$ watch echo $(ls -ltr|tail -n 1)
내부 명령 $()
이 한 번만 실행되고 결과 출력 문자열이 항상 리터럴로 인쇄 ( “감시”) 되므로 주어진 간격으로 출력이 변경되지 않습니다 .
watch
파이프 된 명령 체인을 사용 하여 명령을 작동 시키려면 어떻게해야 합니까?
답변
watch 'command | othertool | yet-another-tool'
답변
watch -n 1 "ls -lrt | tail -n20; date"
파이프와 줄을 지어 보자.
답변
하위 디렉토리의 모든 파일도 나열하려면 exec 옵션과 함께 find 명령을 사용할 수 있습니다.
watch
30 초마다 업데이트되며 find
현재 디렉토리 (하위 디렉토리 포함)에서 모든 * .log 파일을 검색하고 파일 이름과 마지막 10 행을 인쇄합니다.
watch -n30 'find . -name "*.log" -print -exec tail -n10 {} \; '