Bash 스크립트를 작성하다가 임시로 파일을 만들어서 사용하고 싶은 경우가 있다. 특정 파일 경로를 사용하면 스크립트를 동시에 실행할 경우 파일의 내용이 덮어쓰여지게 된다. 따라서 현재 실행 중인 프로세스에서만 접근할 수 있는 임시 파일을 생성할 필요가 생길 수 있다. 이럴 때 mktemp 명령을 사용하면 편하다.
mktemp 사용법
mktemp 명령은 다음과 같이 사용할 수 있다.
$ mktemp
/tmp/tmp.Jgx8ybtklqk
mktemp 명령을 실행하면 /tmp 디렉토리에 임의의 파일이 생성되고 생성된 파일의 이름이 리턴된다. 스크립트 내에서 임시로 사용할 파일을 생성할 때, 이 명령을 사용하고 출력되는 파일 이름을 사용하면 된다.
-d 옵션을 이용해서 임시 디렉토리도 생성할 수 있다.
$ mktemp -d
/tmp/tmp.xVlqkBihX
--suffix 옵션을 이용해서 특정 확장자를 갖는 임시 파일을 생성할 수 있다.
$ mktemp --suffix ".txt"
/tmp/tmp.sux7uxdgtA.txt
이렇게 생성된 파일은 u+rw 퍼미션으로 생성되며 디렉토리는 u+rwx 권한으로 생성된다. (여기애 user mask 값이 적용된다)
만약 특정 패턴의 임시 파일을 생성하고 싶다면 XXXX 를 파일이름에 집어 넣은 다음 mktemp를 호출하면 된다. 예를 들어
$ mktemp test_file_XXX_test.txt
이 명령을 실행하면 3개의 'X' 글자가 임의의 글자로 치환되어 새로운 파일이 생성된다. 예를 들어 'test_file_ixq_test.txt' 이런 파일이 만들어진다.
만약 실제 파일을 생성하지는 않고, 유니트한 파일 이름만을 얻어내고 싶다면 -u 옵션을 추가해서 실행하면 된다.
댓글