명령어

리눅스 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

JooTC

안녕하세요. 테크놀로지에 관심이 많은 블로거입니다.

Recent Posts

Zalgo 텍스트와 이를 방지하는 방법

인터넷 커뮤니티 사이트에서 게시글이나 댓글에 간혹 장난을 목적으로 작성된 특이한 글자를 볼 수 있습니다. 위…

1개월 ago

리눅스 kill, killall 명령어 – 특정 프로세스 종료하기

리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…

1개월 ago

JavaScript typeof null이 ‘object’인 이유

JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…

1개월 ago

Mocha Error: Resolution method is overspecified. 해결 방법

NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…

1개월 ago

윈도우 11 설치 시 Microsoft 계정 로그인 없이 로컬 계정 만들기

언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…

7개월 ago

에어팟 프로 2 케이스 스피커 소리를 완전히 끄는 방법

애플 에어팟 프로 2 (AirPods Pro 2) 케이스에는 스피커가 내장되어 있습니다. 그런데 간혹 아무 것도…

9개월 ago