명령어::touch 사용하기(파일 생성 및 시간정보 변경)
공부방/Linux

명령어::touch 사용하기(파일 생성 및 시간정보 변경)

touch 사용하기

리눅스 환경에서 파일의 시간정보를 변경하기 위해서 touch 명령어를 사용하곤 하였는데, touch 명령어는 0byte의 파일을 생성하기 위해 자주 사용되곤 한다.

 

touch에 대한 가장기본적인 사용법은 다음과 같다.

touch [OPTION] [파일명]

우선 리눅스가 갖는 3가지 time stamp에 대해서 알아보면 다음과 같다

  • atime : 파일을 마지막으로 읽은 시간 :: access time
  • ctime : 상태라고 불리는 파일의 메타데이터의 마지막 변경시간 :: change time
  • mtime : 파일의 내용을 마지막으로 수정한 시간 :: modification time

해당 time stamp는 'stat'명령어를 통해 확인할 수 있다.

 

여기서 만약 option 값을 아무 값도 주지 않고 touch [파일명] 을 하였을 경우 파일의 atime, ctime,  mtime은 서버의 현재 시간으로 설정된다.

 

그리고 atime과 mtime이 변경되면 파일의 상태가 자동적으로 바뀌기 때문에 ctime 또한 바뀌게 된다.

 

여기서 만약 파일명이 존재하지 않는 파일일 경우 0byte의 파일을 생성이 됨을 알 수있다.


Syntax(문법)

touch [[-a] [-m] | [--time=timetype] [...]] [[-d datestring] | [-t timestamp]]
      [-c] [-f] [-h] [-r reffile] file [file ...]

문번에서 확인할 수 있는 것처럼 touch가 갖는 argument으로는 [파일명] 만을 요구하게 된다.

만약 존재하지 않는 파일명일 경우 위에서 언급한바와 같이 0byte의 파일이 생성된다.

 

그리고 만약 여러개의 파일명을 나열하게 되면 각각의 파일명을 갖는 파일들이 생성된다

touch --version

touch 명령어의 버전정보를 출력한다.

touch --help

touch의 도움말을 출력해준다. 옵션이 햇갈릴때는 해당 옵션으로 확인하여 사용하면 된다.


Option(옵션)

옵션 설명 사용법
-a 서버의 현재시간으로 파일의 atime을 수정한다 touch -a [파일명]
-c
--no-create
파일명이 존재하지 않을 경우에도 파일이 생성되지 않으며 다음과 같은 메시지가 출력된다.
ls: cannot access abc: no such file or directory
touch -c [파일명]
-d
--date
지정한 날짜(datestring)으로 파일의 mtime을 수정한다.
ctime은 현재시간으로 설정되며, atime은 변경되지 않는다.
touch -d [datestring] [파일명]
touch --date=[datestring] [파일명]
-f 특별한 기능(?)을 하는 것은 아니나 touch의 BSD버전과의 호환을 위해 사용된다.  
-h
--no-dereference
   
-m 파일의 mtime을 수정하게 된다.  
-r=reffile
--reference=reffile
   

옵션들은 추가적으로 채워 넣도록 하겠다.