
내가 어떻게 할 수있는반복하다시간 간격마다 명령을 실행하여 명령을 실행할 수 있도록 합니다.확인 중 또는모니터링 디렉토리?
스크립트가 필요하지 않으며 터미널에서 실행하려면 간단한 명령만 있으면 됩니다.
답변1
명령을 사용할 수 있습니다 watch
.보다지정된 명령을 정기적으로 실행하는 데 사용됩니다.
터미널을 열고 다음을 입력하세요.
watch -n x <your command>
변화엑스원하는 시간(초)이 되도록 하세요.
watch
명령 및 옵션 사용에 대한 자세한 내용을 보려면 man watch
다음을 실행하거나 방문하세요.링크.
예를 들어 :다음은 각60년대, 동일한 터미널에서 변경 사항이 발생했는지 알 수 있도록 데스크톱 디렉터리의 내용:
watch -n 60 ls -l ~/Desktop
답변2
이외에도 터미널에서 이 명령을 사용할 수도 있습니다.너스의 대답:
while true; do <your_command>; sleep <interval_in_seconds>; done
예:
while true; do ls; sleep 2; done
ls
이 명령은 2초 간격으로 출력을 인쇄합니다 .
프로세스를 중지하려면 Ctrl+를 사용하세요 .C
다음과 같은 몇 가지 단점이 있습니다 watch
.
- 별칭이 지정된 명령은 사용할 수 없습니다.
- 명령의 출력이 너무 길면 스크롤이 제대로 작동하지 않습니다.
- 설정하는데 약간의 문제가 있습니다최대 시간 간격특정 값 이상.
watch
-c
또는 옵션을 사용하여 이스케이프 문자를 전달하는 ANSI 색상 시퀀스를 해석합니다--color
. 예를 들어 의 출력은pygmentize
작동하지만 의 경우에는 실패합니다ls --color=auto
.
위의 상황에서는 이것이 더 나은 선택으로 나타날 수 있습니다.
답변3
Ubuntu에서는 완벽하게 작동 하지만
watch
"Unix-fu"를 순수하게 만들고 싶다면 이를 피하는 것이 좋습니다. 예를 들어 FreeBSD에서는watch
"다른 tty 라인을 스누핑"하는 명령이 있습니다.while true; do command; sleep SECONDS; done
Ctrl또한 주의 사항이 있습니다. + 를 사용하여 명령을 종료하기가 더 어려울 수 있습니다 C. 당신은 다음을 선호할 수도 있습니다:while sleep SECONDS; do command; done
길이가 더 짧을 뿐만 아니라 중단하기도 쉽습니다. 주의할 점은 먼저 잠자기 상태가 된 다음 명령을 실행하므로
SECONDS
명령이 처음 발생하기 전에 잠시 기다려야 한다는 것입니다 .
답변4
crontab을 사용할 수 있습니다. 명령을 실행 crontab -e
하고 원하는 텍스트 편집기로 연 다음 이 줄을 추가하세요.
*/10 * * * * /path-to-your-command
10분마다 명령이 실행됩니다.
* */4 * * * /path-to-your-command
4시간마다 명령이 실행됩니다.
또 다른 가능한 해결책
$ ..some command...; for i in $(seq X); do $cmd; sleep Y; done
엑스반복할 횟수입니다.
와이반복하기 위해 기다릴 시간입니다.
예 :
$ echo; for i in $(seq 5); do $cmd "This is echo number: $i"; sleep 1;done