2012-09-06 2 views
1

이전 파일을 찾기 위해 "찾기"를 얻을 수 없습니다. 내 검색 결과를 하나의 명령문에 연결하고 다른 모든 세그먼트는 정상적으로 작동합니다. 여기 내가 가지고있는 것의 정돈 된 버전이 있습니다. 디렉토리 트리에서 $ path를 검색하고 모든 파일, 365 일 이전에 변경된 파일 및 모든 디렉토리와 같은 발견 된 항목마다 줄 바꿈 문자 만 포함하는 별도의 임시 파일을 만듭니다. 파일과 디렉토리가 잘 작동하고 있습니다 (여기에 포함되지 않은 다른 6 개의 체인 검색).하지만 ctime은 0 개의 히트를 반환하며 사용중인 디렉토리에 일치하는 파일이 있다는 것을 알고 있습니다.BASH가 ctime이 예상대로 작동하지 않음을 발견했습니다.

find $path \ 
\(-type f -fprintf /tmp/files.txt "\n" \) , \ 
\(-type f -ctime +365 -fprintf /tmp/oldfiles.txt "\n" \) , \ 
\(-type d -fprintf /tmp/dirs.txt "\n" \) 

이것은 찾기위한 매뉴얼 페이지와 일치하는 것으로 보입니다. -ctime n은 n 일의 변경 시간을 가진 파일을 찾습니다. +는 n 일을 넘겨주고, -는 < 일을 주며, 아무런 표시도 정확히 n 일을주지 않습니다. 외모가 모든 라인에 있지만, 내 임시 파일은 여전히 ​​0 라인으로 나오고있다. 이견있는 사람? 또한 참고로, 처리 시간을 절약하기 위해 파일 시스템을 한 번에 통과하면서 이러한 파일을 찾아야합니다.

+0

일치하려는 파일의 나이는 몇 살입니까? '-ctime'은 분수 일수록 반올림하기 때문에, 표현식은 36 * 6 * 일 전에 작성된 파일과 일치합니다. – chepner

+0

내 디렉토리에는 365 일보다 훨씬 오래된 파일이 있습니다. – mrimin

+0

365 일 이내에이 파일을 전혀 건드리지 않았습니까? 'ls -lc'는 당신이 매치시키고 자하는 파일에 대해 무엇을 말합니까? – Gilles

답변

3

"변경 시간"은 "메타 데이터 변경 시간"즉 권한 또는 소유권이 변경된 경우를 의미합니다. 대신 mtime을 사용해보십시오.

+0

제목에서 읽은 모든 내용은 메타 데이터가 파일 내용보다 자주 변경되지 않으므로 ctime이 일반적으로 작성 날짜에 더 가깝다는 것을 나타냅니다. – mrimin

1

-ctime n 파일의 상태가 마지막으로 변경되었습니다. n * 24 시간 전. -atime에 대한 주석 을 참조하면 반올림이 파일 상태 변경 시간 인 의 해석에 어떻게 영향을 미치는지 이해할 수 있습니다.

-mtime n 파일의 데이터가 마지막으로 n * 24 시간 전에 수정되었습니다. 파일 수정 시간의 해석 에 반올림이 미치는 영향을 이해하려면 -atime에 대한 설명 을 참조하십시오.

상태 = 권한, 사용자, 그룹, 가능한 ACL을 등

내용 = 파일 데이터는

파일은 소유권이 1.5 년 전에 변경했다 및 표시되지 않을 경우

, 그게 문제입니다 , 그러나 당신이 감지하려고 시도하는 내용의 변화라면, 시도해보십시오.

사이드 노트 : 일부 시스템에서는 액세스 권한도 구성되기 때문에 사용할 때 까다로울 수 있습니다. Sidenote2 : 이라는 질문을 찾을 수 있으며 bash에만 국한되지는 않습니다.

관련 문제