다음 명령은 100일이 지난 디렉터리와 하위 디렉터리를 삭제합니다.
find /var/tmp -type d -ctime +100 -exec rm -rf {} \;
하지만 실제로는 명령이 모든 디렉터리를 삭제하는지 확인하기 위해 테스트를 수행하고 싶습니다.
-ctime +0
그래서 (0일보다 오래된 디렉토리를 삭제하기 위해) 설정했습니다 .
find /var/tmp -type d -ctime +0 -exec rm -rf {} \;
그러나 find 명령은 디렉토리를 삭제하지 않았습니다.
-ctime
테스트를 실행하려면 어떻게 변경해야 하나요 ?
답변1
man
페이지 find
내용은 다음과 같습니다 -ctime
.
-ctime n
File's status was last changed n*24 hours ago. See the comments
for -atime to understand how rounding affects the interpretation
of file status change times.
내용은 다음과 같습니다 -atime
.
-atime n
File was last accessed n*24 hours ago. When find figures out
how many 24-hour periods ago the file was last accessed, any
fractional part is ignored, so to match -atime +1, a file has to
have been accessed at least two days ago.
-ctime 1
따라서 1일 이상 전에 변경된 파일은 반올림 기준으로 삭제할 것으로 예상하고 , -ctime +-1
원하는 효과를 얻으려면 이를 설정해야 합니다.
자신이 삭제되는 것을 방지하려면 /var/tmp
실험할 때 먼저 작업할 디렉터리를 지정하고 항상 인쇄하세요 -mindepth 1
.find
find /var/tmp -mindepth 1 -type d -ctime +-1 -print
파괴적인 작업을 수행하기 전에:
find /var/tmp -mindepth 1 -type d -ctime +-1 -exec rm -rf {} +
+
( 대신 rm을 여러 번 호출할 필요가 없도록 을 사용합니다 . (또는 using 대신 \;
using을 볼 수도 있지만 이 경우에는 이 디렉터리 아래의 파일을 삭제하고 바로 아래에 남겨 두어야 합니다 )-delete
-exec rm....
find
/var/tmp
답변2
이 명령은 마지막 날에 생성된 디렉터리를 삭제합니다.
find /var/tmp -type d -ctime -1 -exec rm -rf {} \;