Linux 파일 타임스탬프 이해: mtime, ctime 및 atime

Linux 파일 타임스탬프 이해: mtime, ctime 및 atime

Linux 운영 체제는 시스템의 각 파일에 대해 세 개의 타임스탬프를 추적합니다. 이 타임스탬프를 사용하면 파일이 마지막으로 업데이트된 시간을 찾을 수 있습니다. 그러나 그들은 모두 무엇을 의미합니까? 그리고 파일에 대한 이러한 시간을 어떻게 알 수 있습니까? 디렉토리와 관련하여 차이점이 있습니까?





atime, ctime, mtime을 이해하면 이 모든 질문에 답할 수 있습니다. 이것은 Unix 파일 시스템이 추적하는 세 가지 타임스탬프입니다. 변경된 사항과 시기에 대한 세부 정보가 필요한 경우 계속 읽으십시오.





세 가지 Unix 타임스탬프는 무엇입니까?

각 파일에는 3개의 타임스탬프가 연결되어 있습니다. Linux는 이것을 다음 위치에 저장합니다. 유닉스 시간 형식 Epoch 이후 초를 측정합니다. 세 가지 타임스탬프는 일반적으로 atime, ctime 및 mtime이라고 합니다.





NS 엠타임 가장 일반적이고 종종 가장 유용합니다. 그것은 수정된 시간 . 파일 내용이 디스크에 마지막으로 기록된 시간입니다.

약간 다른 점은 씨타임 를 나타내는 것 시간 변경 . 이 타임스탬프는 소유권 및 권한과 같은 메타데이터 변경 사항을 추적합니다. 여기에는 최소한 일반적인 최신 Linux OS에서는 파일 이름 바꾸기가 포함됩니다. 그러나 파일의 내용이 변경될 때도 업데이트되므로 항상 mtime만큼 최신 상태를 유지합니다.



세 번째 타임스탬프는 시간 , 누군가가 파일에 마지막으로 액세스한 시간을 저장합니다.

PC에서 TV로 스트리밍하는 가장 좋은 방법

타임스탬프가 디렉토리에 적용되는 방법

Linux 디렉토리는 기본적으로 해당 디렉토리에 있는 파일 목록입니다. 따라서 디렉토리 내부에 파일을 생성하면 해당 디렉토리의 mtime이 업데이트됩니다. 다음을 사용하여 디렉토리의 파일 나열 예를 들어 명령은 액세스 시간을 업데이트합니다. 그리고 파일과 마찬가지로 디렉토리의 권한이나 이름을 변경하면 ctime이 업데이트됩니다.





창조 시간은 어떻습니까?

Linux가 단순히 생성 시간을 추적하지 않는다는 사실을 알게 되면 놀랄 수 있습니다. 처음에는 다음과 같이 가정할 수 있습니다. 씨타임 생성 시간을 나타냅니다. 마찬가지로, 알아낼 수 있는 매우 유용한 것으로 생각할 수도 있습니다.

많은 응용 프로그램은 매번 처음부터 파일을 만들어 파일을 저장합니다. 이렇게 하면 생성 시간을 잘못 사용할 수 있습니다.





다른 타임스탬프를 보는 방법

타임스탬프 정보를 얻는 가장 간단한 방법은 NS 명령 . 기본 긴 형식은 mtime에 대한 세부 정보를 표시합니다.

$ date
Sat Mar 6 16:57:01 GMT 2021
$ echo 'hello, world' > tmp
$ ls -l tmp.txt
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

대신 다음을 사용하여 시간을 표시할 수 있습니다. -유 깃발:

$ date
Sat Mar 6 16:59:33 GMT 2021
$ cat tmp
hello, world
$ ls -lu tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp
$ ls -l tmp
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp

마지막 줄은 이 파일의 mtime이 atime과 다름을 확인합니다. 마지막으로 사용 -씨 ctime을 보려면 플래그:

$ date
Sat Mar 6 17:02:34 GMT 2021
$ mv tmp tmp2
$ ls -lc tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 17:02 tmp2
$ ls -l tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:57 tmp2
$ ls -lu tmp2
-rw-r--r-- 1 ubuntu ubuntu 13 2021-03-06 16:59 tmp2

이번에는 세 번 모두 구별되고 정확함을 확인합니다. 파일을 수정한 다음 액세스한 다음 변경한 순서대로 파일을 수정했습니다.

ls의 대안은 상태 명령. 이 명령은 파일의 inode에서 낮은 수준의 세부 정보를 표시합니다. 한 번에 세 번 모두 확인하기가 더 쉽습니다. 또한 직관적이지 않은 문제를 해결합니다. -유 깃발. 다음은 동일한 파일에 대한 출력 예입니다.

$ stat tmp2
File: `tmp2'
Size: 13 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 327688 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ubuntu) Gid: ( 1000/ ubuntu)
Access: 2021-03-06 16:59:45.000000000 +0000
Modify: 2021-03-06 16:57:59.000000000 +0000
Change: 2021-03-06 17:02:43.000000000 +0000

타임스탬프를 업데이트하는 방법

NS 만지다 명령은 파일의 수정 및 액세스 시간을 변경합니다. 빈 파일을 생성하는 편리한 방법이기도 합니다. 파일이 이미 존재하지 않는 경우 수행할 수 있습니다.

Microsoft Surface에서 스크린샷을 찍는 방법
touch tmp

기본적으로 mtime 및 atime을 현재 시간으로 설정합니다. 로 다른 시간을 설정할 수 있습니다. -NS 깃발:

touch -t 202103061200 tmp

mtime 또는 atime만 설정할 수도 있습니다. -미디엄 그리고 -에게 각각 플래그:

touch -t 202103061300 -m tmp

ctime은 atime 또는 mtime을 설정할 때 항상 업데이트됩니다.

타임스탬프를 기반으로 파일을 찾는 방법

NS 찾기 명령은 타임스탬프에 작용하는 또 다른 도구입니다. atime, ctime 또는 mtime을 기준으로 파일을 필터링할 수 있습니다. 예를 들어:

find . -amin 15

정확히 15분 전에 액세스한 파일을 찾습니다.

find . -mtime -2

지난 2일 이내에 수정된 파일을 찾습니다.

Linux는 모든 파일을 세 번 추적합니다.

가장 일반적으로 참조되는 파일 타임스탬프는 mtime입니다. 예를 들어 파일 목록에 표시되는 날짜와 시간입니다. 그러나 다른 두 타임스탬프도 유용할 수 있습니다. 특히 ctime이 다음을 나타낸다는 것을 항상 기억하십시오. 변화 시간이 아니라 창조 시각.

touch 및 stat와 같은 명령은 Linux 명령줄 도구 상자의 유용한 구성원입니다. 이 명령을 사용하면 새 파일을 빠르게 만들 수 있으므로 Linux 워크플로가 향상됩니다.

공유하다 공유하다 트위터 이메일 Linux 명령 참조 치트 시트

이 간단한 치트 시트는 Linux 명령줄 터미널에 금세 익숙해지는 데 도움이 될 것입니다.

페이스 북에서 여자와 대화하는 방법
다음 읽기 관련 항목
  • 리눅스
  • 파일 관리
  • 리눅스 배포판
저자 소개 바비 잭(게시된 기사 58건)

Bobby는 거의 20년 동안 소프트웨어 개발자로 일한 기술 애호가입니다. 그는 게임에 열정적이며 Switch Player Magazine에서 리뷰 편집자로 일하고 있으며 온라인 출판 및 웹 개발의 모든 측면에 몰두하고 있습니다.

바비 잭이 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.