/media/motion에서 13MB보다 작은 모든 파일과 동일한 파일 이름에 추가 확장자가 추가된 모든 파일(모두 13MB보다 훨씬 작음)을 삭제해야 하므로 검색 결과에 "*"를 추가합니다.
파일은 다음과 같습니다.
file1.mp4
file1.mp4.thumb
file2.mp4
file2.mp4.thumb
13MB보다 작은 모든 .mp4 파일과 해당 .mp4.thumb 파일을 삭제하고 싶습니다(둘 다 매우 작음).
저는 두 가지 방법을 시도해봤습니다. 명령을 에코하고 실행하면 작동하지만 스크립트를 실행하면 작동하지 않습니다.
/usr/bin/find /media/motion -name \"*.mp4\" -size -13M -exec rm -f {}\\* \\\;
찾았습니다: "exec"에 대한 매개변수가 누락되었습니다.
나는 또한 다음을 시도했습니다.
/usr/bin/find /media/motion -name "*.mp4" -size -13M -print | xargs printf -- '%s \* \n' | xargs -0 rm -f
이로 인해 출력이 발생하지 않습니다.
답변1
기본 crontab PATH( /usr/bin:/bin
)를 변경하지 않은 경우 셸과 crontab에서 작동합니다.
find /media/motion -type f -name '*.mp4' -size -13M -exec sh -c 'for f; do rm "$f"*; done' sh {} +
이는 쉘 스크립트를 사용하여 파일을 반복하고 *
예상 파일로 확장합니다.
필요한 경우 추가할 수 있습니다 -f
.rm