touch 명령은 비어 있는 새 파일을 만들거나 기존 파일의 수정 날짜 및 시간을 업데이트하는 데 사용되는 Unix/Linux 명령입니다.
touch example.txt
이 명령은 example.txt라는 새로운 빈 파일을 생성합니다. 동일한 이름의 파일이 이미 존재하는 경우 touch 명령은 해당 파일의 수정 날짜와 시간을 업데이트합니다.
touch 명령에는 동작을 수정하는 데 사용할 수 있는 몇 가지 옵션이 있습니다. 가장 일반적으로 사용되는 옵션은 다음과 같습니다.
-a: 파일의 액세스 시간만 변경하고 수정 시간은 변경하지 않습니다.
-c: 지정된 파일이 존재하지 않는 경우 touch가 새 파일을 생성하지 못하도록 합니다.
-m: 파일의 수정 시간만 변경하고 액세스 시간은 변경하지 않습니다.
-t: 특정 시간을 지정합니다(YYYYMMDDhhmm 형식). 파일의 수정 시간으로 사용됩니다.
-r: 기존 파일의 시간 속성을 touch로 생성 또는 수정 중인 파일의 시간 속성으로 사용합니다.
1. a 옵션
touch 명령의 -a 옵션은 수정 시간을 변경하지 않고 파일의 액세스 시간을 업데이트합니다. 액세스 시간은 마지막으로 파일에 액세스하거나 읽은 시간입니다.
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 1 12:00 blog_post.txt
$ touch -a blog_post.txt
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 1 12:00 blog_post.txt
이 예제에서는 ls -l 명령을 사용하여 blog_post.txt 파일의 세부 정보를 나열합니다. touch -a를 사용하기 전에는 파일의 접근 시간이 2월 1일 오후 12시로 표시됩니다.
다음으로 touch -a 명령을 사용하여 blog_post.txt의 액세스 시간을 업데이트합니다. 마지막으로 ls -l을 다시 실행하여 파일의 상세 정보를 보여주면 접근 시간이 현재 시간으로 업데이트된 것을 확인할 수 있습니다.
2. -c 옵션
touch 명령의 -c 옵션은 지정된 파일이 존재하지 않는 경우 새 파일 생성을 방지합니다. 이 옵션은 실수로 기존 파일을 비어 있는 새 파일로 덮어쓰지 않도록 하려는 경우에 유용합니다.
$ ls -l non_existent_file.txt
ls: non_existent_file.txt: No such file or directory
$ touch -c non_existent_file.txt
$ ls -l non_existent_file.txt
ls: non_existent_file.txt: No such file or directory
이 예에서 ls -l 명령은 non_existent_file.txt 파일의 세부 정보를 나열하는데 사용되지만 파일이 존재하지 않기 때문에 오류를 반환합니다.
그런 다음 touch -c 명령을 사용하여 non_existent_file.txt라는 새 파일을 생성하려고 시도합니다. 단, -c 옵션을 사용하기 때문에 새로운 파일이 생성되지 않고 오류 메시지도 출력되지 않습니다. 마지막으로 ls -l이 다시 실행되고 파일이 여전히 존재하지 않기 때문에 오류를 반환합니다.
3. -m 옵션
touch 명령의 -m 옵션은 액세스 시간을 변경하지 않고 파일의 수정 시간을 업데이트합니다. 수정 시간은 파일이 마지막으로 기록되거나 수정된 시간입니다.
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 1 12:00 blog_post.txt
$ touch -m blog_post.txt
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 4 12:30 blog_post.txt
이 예제에서는 ls -l 명령을 사용하여 blog_post.txt 파일의 세부 정보를 나열합니다. touch -m을 사용하기 전에는 파일의 수정 시간이 2월 1일 오후 12시로 표시됩니다.
다음으로 touch -m 명령을 사용하여 blog_post.txt의 수정 시간을 업데이트합니다. 마지막으로 ls -l을 다시 실행하여 파일의 상세 내역을 보여주면 수정 시간이 현재 시간(2월 4일 오후 12시 30분)으로 업데이트된 것을 확인할 수 있습니다.
4. -t 옵션
touch 명령의 -t 옵션을 사용하면 원하는 파일 수정 시간을 지정할 수 있습니다. 이것은 파일의 수정 시간을 특정 날짜 및 시간으로 변경하려는 경우에 유용할 수 있습니다.
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 1 12:00 blog_post.txt
$ touch -t 202302011230.20 blog_post.txt
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 1 12:30 blog_post.txt
이 예제에서는 ls -l 명령을 사용하여 blog_post.txt 파일의 세부 정보를 나열합니다. touch -t를 사용하기 전에는 파일의 수정 시간이 2월 1일 오후 12시로 표시됩니다.
다음으로 touch -t 202302011230.20 명령을 사용하여 blog_post.txt의 수정 시간을 2023년 2월 1일 오후 12시 30분으로 업데이트합니다. 시간은 YYYYMMDDhhmm.ss 형식으로 지정해야 합니다. 마지막으로 ls -l을 다시 실행하여 파일의 상세 내역을 보여주면 수정 시간이 지정된 시간으로 업데이트된 것을 확인할 수 있습니다.
5. -r 옵션
touch 명령의 -r 옵션을 사용하면 참조 파일을 지정할 수 있으며 참조 파일과 일치하도록 파일의 수정 및 액세스 시간을 업데이트할 수 있습니다. 참조 파일은 시스템의 모든 파일이 될 수 있습니다.
$ ls -l blog_post.txt reference_file.txt
-rw-r--r-- 1 user user 0 Feb 1 12:00 blog_post.txt
-rw-r--r-- 1 user user 0 Feb 3 10:30 reference_file.txt
$ touch -r reference_file.txt blog_post.txt
$ ls -l blog_post.txt
-rw-r--r-- 1 user user 0 Feb 3 10:30 blog_post.txt
이 예제에서는 ls -l 명령을 사용하여 blog_post.txt 및 reference_file.txt 파일의 세부 정보를 나열합니다. touch -r을 사용하기 전에는 blog_post.txt의 수정 시간이 2월 1일 오후 12:00로 표시되고 reference_file.txt의 수정 시간이 2월 3일 오전 10:30으로 표시됩니다.
다음으로 touch -r reference_file.txt blog_post.txt 명령을 사용하여 blog_post.txt의 수정 시간과 액세스 시간을 reference_file.txt와 일치하도록 업데이트합니다. 마지막으로 ls -l을 다시 실행하여 blog_post.txt 파일의 상세 내역을 보여주면 reference_file.txt와 일치하도록 수정 및 접근 시간이 업데이트된 것을 확인할 수 있습니다.
댓글