파일 이름에 두 세트의 X가 있는 경우 "mktemp: 템플릿에 X가 너무 적습니다."

파일 이름에 두 세트의 X가 있는 경우 "mktemp: 템플릿에 X가 너무 적습니다."

저는 Xenial 우분투를 사용하고 있습니다. 배쉬 버전은GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)

이 오류가 발생합니다.mktemp: too few X's in template내 쉘 스크립트가 이 명령을 실행할 때mktemp /tmp/1556580619403-0/duplicate.XXXXXXX.BABj9f0X1bg_work_DADYj9GphRM2_page0_preview.png

파일 이름은 실제로 함수에서 다음과 같이 구성됩니다.

myfunction() {
    local filename
    filename=$0
    mktemp /tmp/1556580619403-0/duplicate.XXXXXXX.${filename}
}

두 번째 발생은 X분명히 문제의 원인입니다.

X이 문제를 해결할 수 있는 스위치나 다른 방법(파일 이름에서 두 번째 항목을 바꾸는 것 외에)이 있습니까 ?

답변1

mktemp바꾸다템플릿의 마지막 X 실행:

템플릿의 마지막 "X"는 영숫자 문자로 대체됩니다.

가장 쉬운 옵션은 다음을 사용하는 것입니다.

mktemp "/tmp/1556580619403-0/duplicate.$filename.XXXXXXX"

원래 파일 이름으로 끝나야 하는 경우 다음 --suffix옵션을 사용하십시오.

mktemp /tmp/1556580619403-0/duplicate.XXXXXXX --suffix ".$filename"

관련 정보