나는 음악을 다운로드하고 캐싱하기 위한 몇 가지 스크립트를 작성했으며 X일 동안 액세스되지 않은 캐시 위치의 디렉터리를 삭제하고 싶습니다. 다음을 통해 이 작업을 수행할 수 있습니다.
gfind "$music_dir" -mindepth 1 -type d -atime +90 -print -delete
그러나 이렇게 하면 나머지 모든 디렉터리의 액세스 시간이 즉시 지금으로 설정되므로 매우 바람직하지 않습니다. 어떡해?
추신: 저는 macOS를 사용하고 있지만 크로스 플랫폼(Unixy) 솔루션을 선호합니다.
답변1
다음을 사용하여 chflags
(또는 운영 체제에 따라) chattr
디렉터리를 변경할 수 없게 만듭니다 .
sudo chflags -R uimmutable "$music_dir"
gfind "$music_dir" -mindepth 1 -type d -atime +90 -print > 'delete_list.txt'
sudo chflags -R nouimmutable "$music_dir"
cat 'delete_list.txt' | xargs rm -rf