ioerror

touch 사용법 및 옵션 - 파일 생성 및 파일 시간 정보 변경 본문

OS

touch 사용법 및 옵션 - 파일 생성 및 파일 시간 정보 변경

반응형

touch - Change File Timestamps

touch - Change File Timestamps

빈 파일을 새로 생성하거나 기존 파일의 접근 시간(atime) 및 수정 시간(mtime)을 변경하는 CLI 기반의 표준 유닉스 명령어이다. 서버 관리 스크립트 작성, 빌드 자동화(make) 테스트, 템플릿 파일 사전 생성 등 다양한 환경에서 빈번하게 사용된다. 모든 유닉스 및 리눅스 계열 OS의 기본 쉘 환경에서 제공된다.

1. touch 용도

  • 신규 빈(Empty) 파일 즉시 생성
  • 소스 코드나 파일의 수정 시간(mtime)을 현재 시간 또는 특정 시간으로 강제 업데이트하여 make 등의 빌드 도구 트리거
  • 파일의 내용을 변경하지 않고 접근 시간(atime)만 변경
  • 스크립트 실행 여부를 기록하는 플래그(Flag) 파일 생성

2. touch 서식

Bash
 
touch [옵션] 파일명 ...

3. touch 옵션

옵션 설명 사용가능 OS 및 쉘
-a 파일의 접근 시간(atime)만 변경 All
-m 파일의 수정 시간(mtime)만 변경 All
-c, --no-create 파일이 존재하지 않아도 새로 생성하지 않음 All
-r <참조파일>, --reference=<참조파일> 지정한 참조 파일의 시간 정보와 동일하게 변경 All
-t [[CC]YY]MMDDhhmm[.ss] 지정한 특정 시각으로 시간 정보 변경 All
-d <문자열>, --date=<문자열> 사람이 읽기 쉬운 날짜 문자열 형태로 시간 지정 [Linux]
-h, --no-dereference 심볼릭 링크 자체의 시간을 변경 (링크가 가리키는 원본 제외) All

명령어 옵션 사용 예시

Bash
 
# 1. 빈 파일 생성 또는 기존 파일 시간 업데이트
touch app.log

# 2. 파일이 없어도 신규 생성하지 않고, 기존 파일의 시간만 업데이트
touch -c config.ini

# 3. 특정 날짜/시간으로 파일 시간 지정 (2026년 3월 15일 10시 30분)
touch -t 202603151030 index.html

# 4. 다른 파일(ref.txt)의 시간 정보를 그대로 복사하여 적용
touch -r ref.txt target.txt

# 5. 문자열을 이용한 시간 지정 [Linux]
touch -d "2 days ago" backup.tar.gz

4. touch 특이사항(유의사항)

  • 파일 생성 목적의 오해: touch는 주로 빈 파일을 만드는 용도로 가장 많이 알려져 있으나, 본래 목적은 파일의 시간 정보(Timestamp) 업데이트이다.
  • 상위 디렉터리 부재 시 에러: 존재하지 않는 디렉터리 경로 내에 파일을 생성하려 할 경우(touch /not/exist/file.txt) 자동으로 디렉터리를 만들지 않고 오류를 반환한다.
  • ctime(Change Time) 변경 불가: touch로는 파일의 생성 시각이나 inode 변경 시각인 ctime을 직접 지정하여 수정할 수 없다. atime이나 mtime을 변경하면 ctime은 시스템에 의해 현재 시간으로 자동 갱신된다.
  • -d 옵션 지원 범위: GNU 기반의 Linux touch는 -d "yesterday"와 같은 유연한 문자열 형식을 지원하지만, BSD 계열(macOS)의 기본 touch는 -d 옵션을 지원하지 않으므로 -t 옵션을 사용해야 한다.

관련 명령어들

  • stat: 파일의 상세 속성 및 정확한 atime, mtime, ctime 정보를 확인하는 명령어
  • ls -l: 파일 목록과 함께 수정 시간(mtime)을 표시하는 명령어 (ls -lu는 atime 표시)
  • mkdir: 새로운 디렉터리를 생성하는 명령어
  • rm: 생성된 파일을 삭제하는 명령어

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

 

반응형
Comments