파일을 이동하기 위해 bash 스크립트를 실행하는 중 오류가 발생했습니다.

파일을 이동하기 위해 bash 스크립트를 실행하는 중 오류가 발생했습니다.

저는 bash 스크립팅을 처음 사용하며 스크립트에 정의된 일 수에 따라 소스와 대상 간에 일이 지난 파일을 이동하는 bash 스크립트를 만들고 싶습니다.

이 스크립트를 실행하면 오류가 발생합니다.

찾기: 경로는 표현식 앞에 와야 합니다: mv 사용법: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path.. .] [표현하다]

#!/bin/bash

echo "Enter Your Source Directory"
read soure

echo "Enter Your Destination Directory"
read destination 

echo "Enter Days"
read days




   find $soure -mtime +$days  mv $soure $destination {} \;

  echo "Files $days old moved from $soure to $destination"

무엇이 빠졌나요? 아니면 뭔가 문제가 있나요? ? ? 이 스크립트를 만드는 데 도움을 주세요.

답변1

귀하가 달성하려는 작업을 제가 이해한 바에 따르면 파일에 두 줄 do과 몇 줄이 포함되는 것을 원하지 않을 것입니다. done그냥 삭제하세요.

for일반적으로 이들은 in 및 loops 에 사용되지만 while스크립트에는 표시되지 않으며 필요하지도 않다고 생각합니다.

업데이트(귀하의 질문이 새로운 질문이 되었습니다!)

find 명령에 -exec실행하려는 명령에 대한 옵션이 없습니다. 또한 파일을 새 대상으로 이동하려면 find다음과 같이 사용하십시오.

find $soure -mtime +$days -exec mv {} $destination \;

이미 {}소스 파일과 일치합니다.

관련 정보