mtime 및 ctime 옵션 찾기

mtime 및 ctime 옵션 찾기

방금 내 홈 디렉터리에 텍스트 파일 yyy를 만들었습니다. 그걸로 수정 touch yyy하고 수동으로 편집했습니다.

그런 다음 다음을 통해 이 파일(및 기타 파일)을 찾고 싶습니다.

find ~/ -type f -mtime 1 -ctime 1 | grep yyy

그러나 yyy는 표시되지 않습니다. Find의 남자는 다음과 같이 썼습니다.

-ctime n: 파일 상태가 n*24시간 전에 마지막으로 변경되었습니다. ...

-mtime n: 파일 데이터가 n*24시간 전에 마지막으로 수정되었습니다. ...

그래서 나의첫 번째 질문예:

yyy를 찾을 수 없는 이유는 무엇입니까?

내 거두 번째 질문예:

변경된 파일 상태는 파일의 내용과 파일의 권한이 변경되었음을 의미합니까?

파일의 데이터를 수정한다는 것은 파일의 내용을 변경한다는 의미입니까?

답변1

예, "파일 데이터 수정"( mtime)은 내용이 수정되었음을 의미합니다. 이 날짜는 수동으로 변경할 수 있습니다(예 touch:

예, "변경된 파일 상태"( ctime)는 콘텐츠 또는 파일의 메타데이터(권한, 소유자 등)가 변경되었음을 의미합니다. 이는 수동으로 변경할 수 없습니다.

예:

$ date > foo
$ ls -l --full-time foo; ls -lc --full-time foo     # Both times have changed
-rw-r--r-- 1 xhienne xhienne 29 2017-01-18 13:40:07.677161702 +0100 foo
-rw-r--r-- 1 xhienne xhienne 29 2017-01-18 13:40:07.677161702 +0100 foo

$ chmod o-r foo
$ ls -l --full-time foo; ls -lc --full-time foo     # Only ctime has changed
-rw-r----- 1 xhienne xhienne 29 2017-01-18 13:40:07.677161702 +0100 foo
-rw-r----- 1 xhienne xhienne 29 2017-01-18 13:40:29.601161310 +0100 foo

$ date >> foo
$ ls -l --full-time foo; ls -lc --full-time foo     # Again, both times have changed
-rw-r----- 1 xhienne xhienne 58 2017-01-18 13:40:51.297160921 +0100 foo
-rw-r----- 1 xhienne xhienne 58 2017-01-18 13:40:51.297160921 +0100 foo

find조건자 -mtime 1-ctime 1검색어가 어제(더 정확히는 24시간 전에서 48시간 전 사이) 수정된 파일에 대한 것이었기 때문에 파일을 찾을 수 없습니다 . 오늘 수정된 파일의 경우 -mtime 0또는 -mtime -1(와 동일 -ctime)을 사용합니다.

예:

$ find -name foo -mtime 1 -ctime 1

$ find -name foo -mtime 0 -ctime 0
./foo

$ find -name foo -mtime -1 -ctime -1
./foo

관련 정보