| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- sysadmin
- 자바스크립트
- linux
- 쉘스크립트
- shell
- Unix명령어
- 명령어
- UNIX
- 시스템관리
- php
- 사용자관리
- linuxcommand
- terminal
- js
- 파일시스템
- Solaris
- bash
- 정규표현식
- UnixCommand
- environment
- cups
- tcsh
- 리눅스명령어
- PackageManagement
- 터미널
- 유닉스
- 유닉스명령어
- coreutils
- JavaScript
- 리눅스
Archives
- Today
- Total
ioerror
touch 사용법 및 옵션 - 파일 생성 및 파일 시간 정보 변경 본문
반응형

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
반응형
'OS' 카테고리의 다른 글
| traceroute 사용법 및 옵션 - 네트워크 패킷의 경로 및 지연 시간 추적 (0) | 2026.07.31 |
|---|---|
| tr 사용법 및 옵션 - 문자열 변환 및 삭제 처리 (0) | 2026.07.31 |
| uname 사용법 및 옵션 - 시스템 및 커널 정보 확인 (0) | 2026.07.31 |
| uname 사용법 및 옵션 - 시스템 정보 확인 명령 (0) | 2026.07.31 |
| top 사용법 및 옵션 - 시스템 프로세스 및 리소스 사용량 실시간 모니터링 (0) | 2026.07.31 |
Comments