저는 Debian 10 Buster를 사용하고 있으며 Linux를 처음 사용합니다. 너무 늦었 결코..
길 건너 건설 현장을 장시간 저속 촬영 영상으로 만들기 위해 이미지를 수집하고 있습니다.
모든 사진은 토요일과 일요일에 찍은 사진이 포함된 카탈로그에 있습니다.
파일 이름의 형식은 다음과 같습니다.
YYYY-MM-DD_HHMM.jpg
예
2021-05-07_1012.jpg
이제 토요일, 일요일에 생성된 사진을 삭제하려고 합니다.
다음을 실행하면(여기의 다른 스레드에서) 토요일과 일요일에 생성된 모든 파일을 나열할 수 있습니다.
find -type f -printf '%Ta\t%p\n' | egrep "^(Sat|Sun)" | cut -f 2-
문제는 이 줄을 삭제 문으로 수정하여 파일을 삭제하려면 어떻게 해야 합니까?
또 다른 옵션은 파일을 내 작업 디렉토리에 복사할 때 파일을 제외하는 것입니다(나스는 파일을 NAS에 저장합니다).
rsync를 사용하여 파일을 복사합니다.
미리 감사드립니다.
답변1
xargs rm
명령에 추가되어 다음과 같은 결과를 얻었습니다.
find -type f -printf '%Ta\t%p\n' | egrep "^(Sat|Sun)" | cut -f 2- | xargs rm
검색 결과와 일치하는 모든 파일이 삭제됩니다. 이를 사용하여 rm -v
어떤 파일이 삭제되었는지 확인할 수도 있습니다 .
xargs
표준 입력에서 항목을 읽고, 댓글에서 말씀하신 것처럼 패턴과 함께 사용할 수 있습니다. 그러나 여기의 스키마는 find
, printf
및 를 사용하여 egrep
정의 됩니다 cut
.
xargs rm
파일을 찾기 위해 명령을 실행하면 상대 경로가 인쇄되지만 이러한 경로를 사용하면 해당 경로가 rm
제공 xargs
되고 제거됩니다.