mktemp로 생성된 파일을 덮어쓸 수 있습니까?

mktemp로 생성된 파일을 덮어쓸 수 있습니까?

임시 위치에 파일을 복사하고 싶습니다.

중요한 내용을 덮어쓰지 않고 스크립트가 실행될 때 파일이 어디에 있는지 알고 싶습니다.

#!/bin/bash

myfile="$(mktemp)"
cp "source" "$myfile"

# work with $myfile

rm "$myfile"

괜찮아 보이는데요? 내가 놓친 것이 있나요? (권한 등?)
이 파일을 덮어쓰는 것에 대해 기분이 좋지 않습니다.

답변1

매뉴얼 페이지에서

임시 파일이나 디렉터리를 안전하게 생성하고 해당 이름을 인쇄합니다.

확인을 추가하여 mktemp성공 여부를 확인할 수 있습니다.

myfile="$(mktemp)"
if test $? != 0; then
  exit 1
fi

성공 하면 mktemp이전에 존재하지 않았던 파일이 생성됩니다. 설명서에 설명된 대로 로 mktemp설정된 권한을 사용하여 파일을 안전하게 덮어쓸 수 있습니다 .u+rw

관련 정보