JooTC
linux-logo-202009-blue

리눅스 touch 명령어 – 파일 생성 및 타임스탬프 변경

리눅스 명령어 – touch

리눅스 touch 명령어는 특정 파일이나 디렉토리의 atime(Access time)mtime(Modification time)을 현재 시각 또는 원하는 시각 정보(타임스탬프/Timestamp)로 변경해주는 명령어입니다. 사실 원래 명령어의 역할은 파일의 시각 데이터 변경 목적으로 사용하는 것이지만 지정한 파일이 없을 경우 새로운 파일을 만들어 주기도 하기 때문에 빈 파일 생성 목적으로 자주 사용하는 명령어이기도 합니다.

리눅스 파일 시스템에서 atime(접근 시간), mtime(수정 시간), ctime(inode 변경 시간)이라는 세가지 시각 데이터가 있습니다. 해당 내용은 다음 포스트에서 자세히 확인할 수 있습니다.

사용 방법

리눅스 touch 명령어는 다음과 같이 하나 이상의 인자값을 가지고 있어야 합니다. touch만 사용하지는 못합니다.

$ touch myFile

위의 경우 myFile이라는 파일이 현재 디렉토리에 존재하지 않을 때 새롭게 만들어집니다. touch 명령어는 파일 내 별도의 데이터를 작성하지 않기 때문에 0 byte인 빈 파일을 만들게 됩니다.

만들어진 파일을 ls -al 명령어로 조회해보겠습니다.

$ ls -al
total 0
drwxrwxr-x. 3 user user  20 Sep  1 04:33 .
drwx------. 5 user user 158 Sep  1 04:33 ..
-rw-rw-r--. 1 user user   0 Sep  1 04:34 myFile

myFile이 0바이트 파일로 생성 되어있음을 확인할 수 있습니다. 여기에 나타나는 시각은 Sep 1 04:34로 나타납니다. 그렇다면 약 1분 후 다시 touch myFile을 실행해보면 어떻게 될까요?

$ touch myFile
$ ls -al
total 0
drwxrwxr-x. 3 user user  20 Sep  1 04:33 .
drwx------. 5 user user 158 Sep  1 04:33 ..
-rw-rw-r--. 1 user user   0 Sep  1 04:35 myFile

기존에 04:34분이었던 정보가 04:35로 변경되어있음을 확인할 수 있습니다. 이렇게 touch 명령어는 영문 그대로 파일을 한 번 터치한 것과 같은 행동을 나타냅니다.

이외에도 touch 명령어에 사용할 수 있는 옵션값들이 있습니다.

먼저 아래와 같이 -c 옵션을 붙이면 파일이 존재하지 않아도 빈 파일을 생성하지 않게 됩니다.

$ touch -c myFile

이렇게 하면 myFile은 비록 해당 위치에 없더라도 만들어지지 않습니다.

atimemtime을 원하는 시간으로 변경 할 수 있습니다. 아무런 옵션이 없다면 현재 시각을 기준으로 하지만, 다음과 같이 -t [TIMESTAMP] 옵션([[CC]YY]MMDDhhmm[.ss])을 사용하여 원하는 시간으로 변경할 수 있습니다. 이 때 ‘초’는 분 뒤에 .을 붙여야 합니다.

$ touch -t 202009010100.00 myFile

위와 같이 명령어를 실행하면 2020년 9월 1일 1시 1분 0초로 정보가 변경됩니다.

시간이 아닌 날짜만 설정하려면 아래와 같이 -d 옵션을 사용하여 원하는 날짜를 YYYY-mm-dd 또는 YYYYmmdd 형식을 사용하여 변경할 수 있습니다.

$ touch -d '2020-01-01' myFile

마지막으로 atimemtime 중 하나만 변경하고자 할 경우, atime-a 옵션을, mtime-m 옵션을 붙여 사용해주시면 됩니다.

$ touch -a myFile

이 포스트가 도움이 되었나요?

guest
0 Comments
Inline Feedbacks
모든 댓글 보기
0
이 포스트에 대한 의견을 남겨주세요!x
()
x
error: 경고: 무단 콘텐츠 복사 및 사용을 금지하고 있습니다. 이해해주셔서 감사합니다.