touch — 파일 생성과 시각 갱신
Linux / 파일 및 디스크 관리 / touch.html
💬 "touch 명령어"
touch는 빈 파일을 만들고, 이미 있으면 수정 시각만 갱신합니다. 파일 내용은 건드리지 않습니다.
실무에서는 설정 리로드 트리거나 배포 표시 파일로 자주 씁니다.
- 개념: 파일이 없으면 0바이트로 생성, 있으면 접근/수정 시각을 현재로 갱신합니다.
- 왼쪽 열: 만든 파일의 이름이 그대로 생성됩니다.
- 오른쪽 열: 기존 파일이면 내용은 그대로이고 Modify 시각만 바뀝니다.
- 시각 지정: -t, -d 옵션으로 원하는 시각을 지정할 수 있습니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
-c | 파일이 이미 있을 때만 시각을 갱신하고 새로 만들지 않습니다 |
-t [[CC]YY]MMDDhhmm[.ss] | 특정 시각으로 설정합니다 |
-d '문자열' | 사람이 읽는 형식으로 시각을 지정합니다 |
-a / -m | 접근 시각만 / 수정 시각만 갱신합니다 |
필수 명령어 조합 3가지
touch /var/www/html/reload.txt— 앱이 감시하는 파일을 갱신해 리로드 유도touch -c /opt/app/current/public/index.php— 파일이 있을 때만 시각 갱신(실수 방지)touch -d '2026-10-18 02:00' /tmp/marker— 특정 시각으로 표시 파일 생성
💬 "리허설 환경에서 하는 검증 절차 알려줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 표시 파일 만들기
배포 시점을 남길 파일을 만듭니다.
touch /opt/app/releases/20261018/.deployed
2단계 · 리로드 트리거
설정 감시 도구가 있는 환경에서 리로드를 유도합니다.
touch /etc/nginx/.reload
3단계 · 확인
시각이 갱신됐는지 확인합니다.
stat -c '%n %y' /etc/nginx/.reload
실무에서는 이렇게 씁니다
1. 무중단 리로드 트리거
상황 — PHP-FPM이 설정 변경을 파일 시각으로 감지합니다.
touch /etc/php/8.3/fpm/php.ini
결과 — 내용 변경 없이도 설정 감시가 파일을 다시 읽습니다.
포인트 — 설정 내용을 바꾸지 않아도 강제 재적용이 필요할 때 유용합니다.
2. 배포 여부 표시
상황 — 여러 서버에 배포 후 어느 서버가 최신인지 확인해야 합니다.
touch /srv/app/.deploy-20261018 && stat -c '%y' /srv/app/.deploy-20261018
결과 — 서버별 배포 시각을 파일로 남겨 비교할 수 있습니다.
포인트 — 모니터링이 파일 존재/시각을 읽도록 하면 배포 현황을 자동 점검할 수 있습니다.
주의할 점
- -t의 연도 형식은 두 자리/네 자리 혼동이 잦습니다. 시각 지정은 -d가 읽기 쉽습니다.
- 운영 파일의 시각을 임의로 바꾸면 백업 도구(증분 백업)가 혼동할 수 있습니다.
- -c 없이 오타로 경로를 쓰면 엉뚱한 위치에 빈 파일이 생깁니다.
실제 실행 화면
표시 파일을 만들고 시각을 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.