포스팅 목차
화일에 대한 등록정보를 가지고 있는 i-node는 다음과 같이 3가지 종류의 시간에 대한 값을 가지고 있다
Last modification time : ls -l
Last access time : ls -lu
Last i-node change time : ls -lc
touch -amt file명 : 모든 시간 변경
Last modification time
파일이 마지막으로 수정된 시간을 말하며, ls -l 명령을 사용했을 때 기본적으로 보여주는 시간으로 파일이 수정되지 6개월 이내이면 "달 월 시간" 으로 표현이 되고 6개월 이상되었다면 "월 일 년" 방식으로 표현된다.
Last access time
파일이 마지막으로 접근된 시간을 말하며, ls -lu 명령으로 확인할 수 있다. modification time 은 파일 내용에 대한 수정시간이고 access time은 접근 시간이기 때문에 내용을 수정하지 않고 단지 읽기만 하였다면 modification time은 수정되지 않지만 access time은 수정된다. 접근 시간이 필요없는 파일시스템(예를 들어 Usenet news spool file system)이라며 mount 옵션중 noatime 옵션을 통해서 access time이 갱신되는 것을 막을 수 있어 파일시스템 성능의 향상을 볼 수 있다. (자세한 사항은 mount_ufs 매뉴얼을 참조)
Last i-node modification time
chown, chgrp, chmod 등과 같은 명령을 통해 파일 속성이 마지막으로 변경된 시간을 의미한다. ls -lc 옵션으로 확인할 수 있다.
touch 명령
기본 형식
touch [ -acm ] [ -r ref_file | -t time ] file1 file2 ...
touch [ -acm ] [ date_time ] file1 file2 ...
Description
touch 명령을 사용해서 access time과 modification time을 수정할 수 있다. touch 명령은 기본적으로 파일이 존재하지 않으면 size가 0 인 파일을 생성한다. 시간 표현 방법은 현재시간을 사용하는 방법, 시간을 명시하는 방법, reference file을 이용하는 방법등 3가지가 있다.
옵션 설명
-a
access time 을 수정한다.
-m
modification time을 수정한다. -a 나 -m 옵션이 명시되지 않으면 사용하지 않으면 access time과 modification time이 둘 다 수정된다.
-t
현재 시간대신에 명시된 시간을 사용한다.-t 옵션으로 시간을 지정해주시 않으면 기본적으로 현재 시간을 사용한다. 시간 표현 방법은
[[CC]YY]MMDDhhmm[.SS] 형식을 이용한다. 앞에서부터 년의 앞의 두자리, 년의 뒤의 2자리, 월, 일, 시간, 분, 초를 의미한다. [] 기호는 생략가능을 의미하며 생략되면 기본적으로 현재의 값이 해당 값에 적용이 된다.
if YY is specified as CC's default value is
66 ~ 99 19
00 ~ 38 20
39 ~ 68 Error
-f
현재 시간을 사용하는 대신 ref_file 로 명시된 파일의 해당 시간을 이용한다.
-c
명시된 파일이 존재하지 않으면 만들지 않는다.
example)
a.txt 파일시간을 현재 시간으로 바꾸기
# touch a.txt
a.txt 파일의 access time, modification time을 2002년 10월 31일 오전 12시 34분으로 바꾸기
# touch 10311234 a.txt
a.txt 파일의 시간을 b.txt 파일과 같게 하기
# touch -r b.txt a.txt
Tip
find
의 -mtime 의 정확한 의미
파일을 검색하는 명령 중 find 는 -atime (access time기준)과 -mtime 이 제공된다. 이들 옵션은 일(day)기준으로 찾아주고 시간을 표현하는 방법은 다음과 같다.
+n : n일보다 오래된
n : 정확히 n일
-n : n일보다 최신인
예를 들면 최근에 7일내에 수정된 파일을 검색하려면
# find / -mtime -7 -print
이다. 하지만 atime, mtime 옵션의 단점은 표현 방법이 일(day)단위라는 것이다. 조금 더 세밀하게 검색하고 싶으면 -newer 옵션을 사용할 수 있다.
예를 들어 최근 7일내 access한 파일들을 검색하려면
#find / -atime -7 -print
# find / -newer a.txt -print
명령은 a.txt보다 최근에 수정된(modification time기준) 파일을 출력해 달라는 명령이다. 그렇다면 우리가 touch 명령으로 파일을 만들어 준 후 적절히 시간을 수정해서 사용한다면 좀 더 명확하게 파일을 찾아 낼 수 있을 것이다.