touch — 파일 생성과 시각 갱신

Linux / 파일 및 디스크 관리 / touch.html

파일 및 디스크 관리원문등록 2026-10-18

💬 "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 없이 오타로 경로를 쓰면 엉뚱한 위치에 빈 파일이 생깁니다.

실제 실행 화면

표시 파일을 만들고 시각을 확인한 결과입니다.

touch 명령어 실행 결과: 빈 파일 생성과 시각 확인

실제 운영 중인 서버

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