리눅스의 touch 명령어는 파일의 타임스탬프(시간 정보)를 갱신하거나, 해당 파일이 존재하지 않을 경우 새로 생성하는 역할을 합니다. 아래에서 다양한 예제와 활용 사례를 함께 살펴보겠습니다.
언뜻 쓸모없어 보일 수 있지만, 실제로는 매우 유용한 명령어입니다. 예를 들어 my_file.txt라는 빈 파일을 만들고 싶다면 다음 명령어 하나면 충분합니다.
touch my_file.txt
정말 간단하죠!
파일의 타임스탬프를 갱신하는 것 또한 실무에서 유용하게 쓰입니다.
예를 들어 현재 즐겨 보는 TV 프로그램 이름을 기록해 두는 favorite_tv.txt라는 파일이 있다고 가정해 봅시다.
10년 전 좋아하던 프로그램도 The Flintstones(플린스톤)였고, 지금도 여전히 동일합니다. 파일 내용은 바뀌지 않았지만, 타임스탬프는 10년 전 마지막으로 수정된 것으로 표시되어 있죠. 이 파일을 보는 사람은 그 프로그램이 아직도 최애 프로그램인지 알기 어렵습니다.
이럴 때 다음 명령어를 실행하면:
touch favourite_tv.txt
…파일의 내용은 그대로 유지되면서 수정(modification) 타임스탬프만 최근 시각으로 갱신됩니다. 덕분에 파일을 확인하는 사람이라면 누구나 The Flintstones가 여전히 최애 프로그램이라는 사실을 한눈에 알 수 있습니다.
touch 명령어 문법
touch [OPTIONS] file1 [file2 file3...]
참고할 점은 다음과 같습니다.
- 하나 이상의 파일 경로를 지정할 수 있습니다.
- 선택적으로 옵션(OPTIONS)을 추가할 수 있으며, 자주 사용하는 옵션은 아래 표를 참고하세요.
- 기본적으로 touch는 지정된 파일의 접근(access) 시간과 수정(modification) 시간을 모두 갱신합니다.
주요 옵션
| 옵션 | 설명 |
|---|---|
| -a | 접근 시간(access time)만 변경 |
| -c | 새 파일을 생성하지 않음 |
| -m | 수정 시간(modification time)만 변경 |
| -d DATE | 현재 시간 대신 지정한 DATE 사용 (문자열로 파싱 가능한 날짜/시간) |
| -h | 심볼릭 링크가 참조하는 파일 대신 링크 자체에 적용 |
더 많은 옵션과 자세한 내용이 궁금하다면 다음 명령어로 매뉴얼을 확인할 수 있습니다.
man touch
touch 명령어 예제
새 파일을 생성하거나 접근/수정 타임스탬프를 갱신하는 기본 사용법은 앞서 살펴보았습니다. 이번에는 위에서 소개한 옵션들을 활용한 추가 예제를 알아보겠습니다.
아래 예제 실행 후 변경 결과를 확인하려면 다음 명령어를 사용하세요.
stat <file-name>
접근 시간만 변경하기
touch -a my_file.txt
수정 시간만 변경하기
touch -m my_file.txt
특정 날짜/시간으로 설정하기
touch -d '17 March 2021 10:26' my_file.txt
심볼릭 링크 다루기
기본적으로 touch는 심볼릭 링크(symbolic link)가 가리키는 원본 파일에 작업을 수행합니다. 링크 자체의 타임스탬프를 갱신하고 싶다면 -h 옵션을 사용하세요.
touch -h my_symbolic_link