우리 클러스터에는 30일 이내에 수정되거나 액세스되지 않은 모든 파일은 삭제된다는 정책이 있습니다. 프로젝트가 실행 중이고 완료될 때까지 모든 파일을 보관하고 싶습니다. 다음을 수행하여 시스템을 속일 수 있습니까?
find ./ -type f -exec touch {} +
이것을 시도해 보았는데 타임스탬프가 변경된 것 같습니다. 하지만 이렇게 하면 시스템이 파일이 실제로 수정되었다고 생각하게 될까요?
답변1
물론 이것은 작동해야합니다.
하지만 "stat" 명령을 확인해보면 확실할 수 있습니다.
sh-4.3$ stat test.csv
File: 'test.csv'
Size: 871 Blocks: 8 IO Block: 4096 regular file
Device: 20fd4bh/2161995d Inode: 8389896 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ cg) Gid: ( 1000/ cg)
Access: 2016-01-06 05:29:32.220197637 +0000
Modify: 2016-01-06 05:29:32.220197637 +0000
Change: 2016-01-06 05:29:32.220197637 +0000
Birth: -
sh-4.3$
답변2
정책이 실제로 "30일 동안 수정되거나 액세스되지 않은 파일"인 경우 touch -a
일반 touch
. 이것의 장점은 수정 시간을 깨지 않으므로 빌드 스크립트가 깨지지 않고 계속해서 수정 시간을 사용하여 해당 파일 버전의 수명을 나타낼 수 있다는 것입니다.
파일의 액세스 시간을 보는 데 사용할 수 있습니다 ls -lu
.