
Bash에서 파일이 X분보다 오래된 경우에만 특정 파일이 포함된 디렉터리를 찾아 삭제하려면 어떻게 해야 합니까?
있다 이 답변특정 파일이 포함된 디렉터리를 찾습니다. 그러나 파일이 X분보다 오래되었다는 조건을 추가하는 방법은 명확하지 않습니다.
답변1
편집하다: 더 간단한 방법:
find . -name 'foobar.dat' -mmin +3 -exec bash -c 'rm -vr "$(dirname "$1")"' bash {} \;
기본적으로 일치하는 파일을 찾은 다음 상위 디렉터리를 지우는 것입니다. 두 번째 "bash" 문자열은 무엇이든 될 수 있습니다. 파일 이름을 "$0"에 넣지 않기 위해 있는 것입니다(물론 잘 작동하는 것 같지만...).
이전의 덜 우아한 솔루션:
나는 다른 방법으로 문제를 해결할 것입니다.
다음 작업을 수행하는 작은 스크립트를 만듭니다
rm -r $(dirname $1)
(즉, 인수의 상위 디렉터리 제거).해당 파일을 모두 찾아 해당 파일에 대해 스크립트를 호출합니다.
find . -name 'foobar.dat' -mmin +3 -exec rmparent_script {} \;