나는 내 컴퓨터에 디렉토리를 가지고 있는데, 그것을 내 자신의 tmp
디렉토리 로 생각 하지만 내 ~
디렉토리에 있습니다. 그리고 3 시간마다 시스템이 하루보다 오래된 디렉토리의 디렉토리를 그대로 유지하면서 디렉토리의 모든 수준에서 모든 파일을 재귀 적으로 삭제하도록 모든 파일을 삭제하도록하고 싶습니다.
그놈 3.18과 함께 우분투 그놈 15.10을 실행하고 있습니다.이 작업을 수행 할 수 있습니까? 그렇다면 어떻게? 사용자 상호 작용이 필요하지 않은 완전 자동화를 원합니다. 이것은 로그인 할 때 자동으로 시작되어야하므로 시작할 때마다 무언가를 실행할 필요가 없습니다.
답변
사용 find
:
find ~/tmp -type f -mtime +0 -delete
-
~/tmp
재귀 적으로 검색되는 디렉토리입니다. 이에 따라 변경하십시오. -
-type f
파일 만 찾습니다 -
-mtime +0
파일이 하루 이상 마지막으로 수정 된 경우 파일과 일치합니다. -
-delete
일치하는 파일을 제거합니다.
여기서 catch는 -mtime +0
, 대부분 사용을 생각할 수 -mtime +1
있지만 find
일을 계산하는 동안 소수 시간을 무시합니다. 따라서 -mtime +1
최소 2 일 전에 마지막으로 수정 한 경우 파일과 일치합니다.
인용 man find
, -mtime
동일한 타이밍 규칙 등이있다 -atime
:
-시간 n
파일은 마지막으로 n * 24 시간 전에 액세스되었습니다. 파일에 마지막으로 액세스 한 24 시간 동안의 수를 알아낼 때 소수 부분은 무시되므로 -atime +1과 일치 시키려면 파일이 최소 2 일 전에 액세스되어야합니다.
또한 정밀도를 원하면 시간을 분 단위로 표시 하는 -mmin
옵션을 확인 해야합니다 find
.
3 시간 후에 정기적으로 실행하기 위해 cron
항목을 추가 할 수 있습니다 .
실행 crontab -e
하고 추가하십시오.
00 */3 * * * /usr/bin/find ~/tmp -type f -mtime +0 -delete
zsh
파일을 제거하는 데 사용 :
rm ~/tmp/**/*(.-m+0)
추가 cron
:
00 */3 * * * /usr/bin/zsh -c 'rm ~/tmp/**/*(.-m+0)'
답변
1 일이 지난 파일 /home/username/directory
과 그 아래의 모든 디렉토리는 다음을 사용 하여 삭제할 수 있어야합니다 .
find /home/username/directory -type f -mtime +1 -delete
그리고 3 시간마다 해당 명령을 예약하려면 cron 작업으로 설정하십시오.
crontab -e
그런 다음 crontab 내부에서
0 */3 * * * find /home/username/directory -type f -mtime +1 -delete
어느 시간에 3 시간마다 (즉, 0 분) 명령을 실행하므로 오전 3시, 오전 6시 등
에 대한 자세한 내용을 보려면 cron
및 crontab
manpages
로 이동하십시오 .