.class
워크스페이스에서 한동안 실행되지 않은 파일을 감지하고 삭제하는 방법은 무엇인가요 ?
답변1
수정 시간 대신 수정 시간을 기준으로 파일이 마지막으로 실행된 가장 가까운 시간을 찾을 수 있습니다. atime
실행 시에는 파일이 수정되지 않습니다. 그러나 다른 이유로 파일에 액세스했는지 여부를 알 수 있는 방법은 없습니다. 단, 일정 시간 내에 해당 파일에 접근하지 않으면 해당 파일을 실행할 수 없습니다.
24시간 이상 액세스되지 않은 실행 파일을 나열하려면 다음을 수행할 수 있습니다.
find workspace_dir -type f -perms /111 -atime +1
삭제하려면(먼저 삭제하려는 항목만 삭제하세요.):
find workspace_dir -type f -perms /111 -atime +1 -exec rm {} +
SSD의 경우 noatime
디스크 쓰기 횟수를 줄이고 수명을 늘리기 위해 마운트를 선택하는 경우가 많습니다. 이 옵션을 사용하여 파일 시스템을 마운트하면 noatime
작동하지 않습니다 .
고쳐 쓰다
이것이 Java 파일이라면 .class
직접 실행할 수 없습니다. .class
24시간 전에 액세스한 파일을 검색/삭제하려면 :
find workspace_dir -type f -name '*.class' -atime +1
find workspace_dir -type f -name '*.class' -atime +1 -exec rm {} +
답변2
프로그램이 실행되면,아르템ctime이나 mtime이 아닌 수정되었습니다.
참고: stat <filename>
내 말을 믿을 수 없다면 사용하세요.
정의된 두 날짜 사이에 어떤 파일에 액세스했는지 확인하려면 다음을 사용하십시오.-최신옵션 찾기
예:
find ./ -name "*.class" -newerat "2014-03-01" ! -newerat "2014-04-02
"
.class로 끝나고 2014년 3월 1일부터 2014년 4월 2일 사이에 액세스한 모든 파일이 표시됩니다.
답변3
다음 명령을 사용하여 최근에 수정된 파일을 확인할 수 있습니다.
ls -halt *.class
위 순서에서 출력의 첫 번째 파일은 가장 최근에 편집되었음을 의미합니다.
역순으로 출력하고 싶다면,
ls -haltr *.class
위 출력에서 출력의 첫 번째 파일은 매우 일찍 편집되었음을 의미합니다.
일단 결정하면기간을 결정, rm
이러한 파일에 대한 작업을 수행할 수 있습니다.
이제 결정 기간이 1일이라고 가정하면 다음 명령을 실행할 수 있습니다.
find /path/to/files* -atime +1 -exec rm {} \;
파일을 삭제하는 또 다른 방법은 다음과 같습니다.
rm -f `find *.class -type f -atime +1`
파일의 전체 경로를 지정하는 것이 가장 좋습니다.
확실히 명령을 실행하기 전에 다음 명령을 실행하여 지난 1일 동안 수정되지 않은 파일을 찾습니다.
echo `find *.class -type f -atime +1`