디렉토리 구조를 그대로 유지하면서 특정 시간보다 오래된 특정 디렉토리의 모든 파일을 시스템에서 삭제하는 방법은 무엇입니까?


12

나는 내 컴퓨터에 디렉토리를 가지고 있는데, 그것을 내 자신의 tmp디렉토리 로 생각 하지만 내 ~디렉토리에 있습니다. 그리고 3 시간마다 시스템이 하루보다 오래된 디렉토리의 디렉토리를 그대로 유지하면서 디렉토리의 모든 수준에서 모든 파일을 재귀 적으로 삭제하도록 모든 파일을 삭제하도록하고 싶습니다.

그놈 3.18과 함께 우분투 그놈 15.10을 실행하고 있습니다.이 작업을 수행 할 수 있습니까? 그렇다면 어떻게? 사용자 상호 작용이 필요하지 않은 완전 자동화를 원합니다. 이것은 로그인 할 때 자동으로 시작되어야하므로 시작할 때마다 무언가를 실행할 필요가 없습니다.

답변:


21

사용 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)'

6

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시 등

에 대한 자세한 내용을 보려면 croncrontab manpages로 이동하십시오 .


4
이 답변은 실제로 잘못되었습니다 . 다른 답변을 참조하십시오 .

4
이 답변이 잘못되어 실제로 다른 답변보다 더 많은 것을 말하지 않으므로 답변이 다른 답변 보다 정확 하고 우수 하도록 개선 하거나 삭제하십시오.

5
@ParanoidPanda 나는 당신이 고품질의 답변을 원한다는 것을 이해하지만 본질적으로 같은 것을 두 번 언급하는 것은 필요하지 않으며 특히 새로운 사용자에게는 공격적인 것으로 보일 수 있습니다.
RPiAwesomeness

2
@ RPiAwesomeness : 글쎄, 나는 첫 번째 주석을 편집 할 시간이 부족했기 때문에 두 번째로 주석을 달았으며, 첫 번째 주석에서 반드시 이해되지 않은 답변을 삭제해야한다고 말하고 싶었지만 나는 그들이 공격을 받고 있다고 느끼기를 원하지 않았고 나는 단지 그들이 단지 잘못된 대답을했고 그것을 삭제해야한다고 말한 것처럼 개선에 대해 조금 추가했습니다. 그러나 이것이 어떻게 잘못 될 수 있는지 알 수 있습니다. 그래서 팬더는 대나무를 빼앗을 때만 공격적입니다. ;-)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.