저는 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 \;
이미 {}
소스 파일과 일치합니다.