[Linux] 리눅스 touch 명령어(파일 생성, 갱신) 사용법 & 옵션 정리

touch

touch는 아무것도 없는 빈 파일을 생성하거나 touch는 파일의 날짜와 시간을 수정하는 명령어입니다. touch의 파일명이 이미 존재한다면 서버의 현재 시간으로 파일의 최근 사용한 시간(access time)과 최근 변경 시간(modification time)을 변경하고 파일명이 존재하지 않는다면 파일의 크기가 0인 빈 파일을 생성합니다.

 

touch [옵션][파일명]

# 파일이 없다면 file txt 파일 생성, 있다면 file.txt의 시간 정보 수정
touch file.txt
  1. 수정 할 파일이 존재하지 않는다면 크기가 0 인 빈 파일을 생성합니다.
  2. 수정 할 파일이 존재한다면 해당 파일의 최근 사용한시간과 최근 변경 시간을 현재 시간으로 수정합니다.
  3. 별다른 옵션이 없다면 atime, ctime, mtime 모두 변경됩니다.
리눅스 타임 스탬프 종류
atime : 최종 접근 시간 (access time)
ctime : 최종 상태 변경 시간 (change time)
mtime : 최종 수정 시간 (modify time)

 

자주 사용하는 옵션

  • -a : 현 시간으로 파일의 접근 시간, 변경 시간을 수정한다.
  • -c : 기존 파일이 없으면 파일이 생성되지 않는다.
  • -m : 현재 시간으로 파일의 수정 시간, 변경 시간을 수정한다.
  • -d : 지정한 시간으로 접근 시간, 수정 시간이 변경되고 변경시간은 현재 시간으로 수정된다.
  • -r : 지정한 파일의 접근 시간, 수정 시간으로 파일이 수정되고 변경 시간은 현재 시간으로 수정된다.
  • -t : 지정한 시간으로 접근 시간, 수정 시간을 수정하고 변경 시간은 현재 시간으로 수정한다.

 

여러 파일의 생성 시간을 수정하고 싶을 때

touch [생성 or 수정 대상1] [생성 or 수정 대상2] [생성 or 수정 대상3] .....
touch test1.txt test2.txt test3.txt

# 현재 위치의 모든 파일 수정
touch *

# 현재 위치의 .txt로 끝나는 모든 파일 수정
touch *.txt

위와 같이 한번의 명령어로 여러개의 파일을 한번에 만들거나 수정할 수 있습니다.

 

하위 폴더 모두 touch 하고 싶을 때

# 하위 폴더 모두 touch
find . -exec touch {} \;
#또는
find . -print | xargs touch

# 하위 폴더의 jsp만  전부 touch
find . -name '*.jsp' -exec touch {} \;

touch 명령어는 현재 디렉토리에 있는 파일만을 대상으로 하기 때문에 디렉토리 내부의 모든 파일들을 touch 하고 싶다면 위와 같이 사용해주셔야 합니다. 특히 jsp 파일의 경우 import된 파일이 변경되었다면 import를 하고 있는 파일들을 한번 touch를 해줘야 제대로 컴파일 되는 경우들이 있기 때문에 위와 같이 사용을 많이 합니다.

댓글

Designed by JB FACTORY