bash 스크립트가 원하는 출력을 구현하지 않습니다.

bash 스크립트가 원하는 출력을 구현하지 않습니다.

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

#!/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 -exec mv {} $destination \;
echo "Files which were $days Days old moved from $soure to $destination"

내 스크립트는 오류 없이 실행되지만 원하는 출력을 얻지 못합니다. /home/ketan/maxi 폴더의 30일 된 파일을 /home/ketan/google로 이동하면 파일 대신 전체 maxi 폴더가 Google로 이동됩니다.

스크립트를 기반으로 연령 기준과 일치하는 파일을 이동할 수 있어야 합니다. 이 스크립트에 어떤 문제가 있나요?

답변1

find표현식은 상위 디렉터리와도 일치합니다. 파일만 이동하려면 일반 파일에 대해서만 작동하도록 지시해야 합니다. 또한 확장을 참조해야 합니다.

find "$soure" -type f -mtime "-$days" -exec mv {} "$destination" \;

관련 정보