Mac OS X `at`을 사용하여 일일 작업을 예약하여 .Trash 폴더를 삭제합니다.

Mac OS X `at`을 사용하여 일일 작업을 예약하여 .Trash 폴더를 삭제합니다.

OS X at명령을 사용하여 사용자 .Trash폴더의 일일 정리 일정을 어떻게 예약합니까?

나는 다음과 같은 내용을 생각하고 있습니다.

rm -rf ~/.Trash/**/* | at 0:00 + 1 day

이렇게 하면 매일 쓰레기가 청소되나요?

이 명령은 로그인 스크립트의 일부로 실행되므로 예약된 작업을 모두 지우는 방법도 필요합니다. 방법이 있나요 at -r all?

답변1

rm -rf ~/Trash/*루트로 실행하지 않으면 권한 거부 오류가 발생하는 경우가 많습니다. osascript -e 'tell app "Finder" to empty trash'일부 파일이 사용 중인 경우에도 오류 대화 상자가 표시됩니다.

0 0 * * * rm -rf ~/Trash/*루트의 crontab( )에 추가해 볼 수 있습니다 sudo crontab -e.

또는 launchd를 사용하여 다음과 같은 속성 목록을 저장하고 /Library/LaunchAgents/empty_trash.plist이를 루트가 소유하도록 만듭니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>EnableGlobbing</key>
    <true/>
    <key>Label</key>
    <string>empty_trash</string>
    <key>ProgramArguments</key>
    <array>     
        <string>rm</string>
        <string>-rf</string>
        <string>/Users/username/Trash/*</string> <!-- ~/ doesn't work -->
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>0</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

다음 로그인 시 자동으로 로드되지만 를 사용하면 즉시 로드할 수 있습니다 sudo launchctl load /Library/LaunchAgents/empty_trash.plist.

엷은 갈색자동으로 휴지통을 비우는 옵션도 있습니다.

관련 정보