찾기: 해당 파일이나 디렉터리가 없습니다.

찾기: 해당 파일이나 디렉터리가 없습니다.

$ while true ; do 'date; time find /tmp/test -type f \
  -exec cp /dev/null {} \;';sleep 3600; done

작동하지 않고 대신 오류 메시지가 반환됩니다.

-bash: date; time find /tmp/test -type f -exec cp /dev/null {} \;: No such file or directory

탈출을 시도했지만 ;여전히 {}같은 오류가 발생합니다. 예, 디렉토리가 있습니다 /tmp/test.

답변1

인수는 do단일 명령이며, 추가 명령은 일련의 명령을 사용합니다.

while true ; do date ; find ... ; sleep 3600 ; done

답변2

while true; do
    date
    time find /tmp/test -type f -exec cp /dev/null {} \;
    sleep 3600
done

명령의 작은따옴표로 인해 쉘은 인용된 문자열을 실행할 명령의 이름으로 해석하지만 이를 찾을 수 없으므로 특정 오류가 발생합니다.

매 시간마다 파일을 지우는 또 다른 방법 /tmp/test은 다음 일정에 따라 cronjob을 사용하는 것입니다.

0 * * * * find /tmp/test -type f -exec cp /dev/null {} \;

답변3

따옴표를 제거하면 예상대로 작동합니다(예, 두 개의 세미콜론이 연속으로 있어야 합니다).

관련 정보