English

mktemp — 안전한 임시 파일·디렉토리 생성

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

파일 및 디스크 관리원문등록 2026-10-20T09:00:00+09:00

충돌과 예측 공격을 피하도록 무작위 이름으로 임시 파일이나 디렉토리를 만드는 도구.

기본 정보

명령어 이름mktemp
한 줄 소개충돌과 예측 공격을 피하도록 무작위 이름으로 임시 파일이나 디렉토리를 만드는 도구.
제공GNU coreutils (모든 Linux 배포판 기본 탑재)
공식 문서https://man7.org/linux/man-pages/man1/mktemp.1.html
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재 (별도 설치 불필요)
분류리눅스 파일·디스크 관리 (태그: 임시 파일, 보안, 스크립트, coreutils)

이 명령어는 무엇인가?

mktemp는 중복되지 않는 이름으로 임시 파일이나 디렉토리를 만들고 경로를 출력합니다. 스크립트에서 고정된 이름을 쓰면 다른 프로세스와 충돌하거나 심볼릭 링크 공격에 노출될 수 있습니다.

생성된 경로를 변수에 담아 사용하고, 작업이 끝나면 trap으로 정리하는 패턴이 일반적입니다.

어떤 문제를 해결하는가?

  • 스크립트에서 안전한 임시 파일이 필요할 때
  • 동시에 실행되는 작업끼리 파일명이 충돌할 때
  • 임시 디렉토리를 만들고 자동 정리하고 싶을 때
  • 예측 가능한 이름으로 인한 보안 문제를 피할 때

주요 기능

임시 파일 생성

템플릿을 주면 그 뒤에 무작위 문자가 붙은 경로를 만듭니다.

  • 활용 상황: 중간 결과를 잠시 저장할 때
  • 얻는 결과: 안전하게 생성된 파일과 경로
  • 제한 사항: 기본 위치는 /tmp이며 재부팅 시 사라질 수 있습니다.

임시 디렉토리 생성

-d 옵션은 파일 대신 디렉토리를 만듭니다.

  • 활용 상황: 여러 임시 파일을 한곳에 모을 때
  • 얻는 결과: 무작위 이름의 디렉토리
  • 제한 사항: 하위 파일은 직접 정리해야 합니다.

지정 위치에 생성

-p 옵션으로 기준 디렉토리를 지정합니다.

  • 활용 상황: /tmp가 아닌 다른 볼륨을 써야 할 때
  • 얻는 결과: 지정한 위치의 임시 항목
  • 제한 사항: 해당 디렉토리에 쓰기 권한이 필요합니다.

설치 및 실행

설치 여부 확인

mktemp --version

sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora

실제 사용 예제

임시 파일 경로 얻기

변수에 경로를 담아 이후 명령에서 사용합니다.

tmp=$(mktemp)
echo "data" > "$tmp"
rm -f "$tmp"

임시 디렉토리와 정리

trap으로 스크립트 종료 시 자동 삭제합니다.

workdir=$(mktemp -d)
trap 'rm -rf "$workdir"' EXIT
echo "$workdir"