리눅스 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은 비록 해당 위치에 없더라도 만들어지지 않습니다.
atime과 mtime을 원하는 시간으로 변경 할 수 있습니다. 아무런 옵션이 없다면 현재 시각을 기준으로 하지만, 다음과 같이 -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
마지막으로 atime과 mtime 중 하나만 변경하고자 할 경우, atime은 -a
옵션을, mtime은 -m
옵션을 붙여 사용해주시면 됩니다.
$ touch -a myFile
Xcode에서 iOS 애플리케이션을 빌드(Archive)하고 App Store Connect에 앱을 업로드하는 도중, 아래와 같은 에러가 발생하면서 더…
INSTALL_FAILED_INSUFFICIENT_STORAGE 문제 안드로이드 스튜디오에서 에뮬레이터를 실행하고 개발중인 애플리케이션을 실행하려 하면 로그 창에 아래와 같이 표시되면서…
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…