환경 변수에서 TEMP와 TMP


20

이 두 가지 환경 변수 TEMP와 TMP를 갖는 것이 옳습니까? 하나를 변경하면 다른 하나를 동일하게 변경해야합니까? 예를 들어 cygwin을 설치하고 지시에 따라 PATH 변수를 변경하라는 메시지가 표시되었지만 TEMP와 TMP에는 경로 변수가 있습니다. 둘의 차이점은 무엇입니까?

환경 변수의 스크린 샷

사람들이 왜 이것을보고 싶어하는지 모르지만 여기에 경로의 값이 있습니다 : TEMP의 경로 : C : \ Program Files \ Common Files \ Microsoft Shared \ Windows Live; C : \ Program Files (x86) \ Common Files \ Microsoft Shared \ Windows Live; C : \ Program Files (x86) \ NVIDIA Corporation \ PhysX \ Common; % SystemRoot % \ system32; % SystemRoot %; % SystemRoot % \ System32 \ Wbem; % SYSTEMROOT % \ System32 \ WindowsPowerShell \ v1.0 \; C : \ Program Files (x86) \ Common Files \ Acronis \ SnapAPI \; C : \ Program Files (x86) \ Windows Kits \ 8.1 \ Windows Performance Toolkit \; C : \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C : \ Program Files (x86) \ Windows Live \ 공유

TMP의 경로 : % USERPROFILE % \ AppData \ Local \ Temp


temps에서 Path 변수는 어디에 있습니까? 스크린 샷에서 볼 수 없습니다
user151019

@ 마크가 중요합니까?
Celeritas

@DavidMarshall 무엇이 중요합니까?
Celeritas

내 질문은 경로 변수를 변경하는 방법이 아닙니다. 그리고 그것이 당신의 대답이라면 틀릴 것입니다. 왜냐하면 내 변수는 변수를 변경할 때 TEMP, TMP 또는 둘 다로 수행해야한다는 것입니다. 그리고 당신은 지정하지 않습니다.
Celeritas

3
이 기사를 확인하십시오. 왜 TMP 및 TEMP 환경 변수가 있고 어느 것이 옳습니까? 이것에 따르면, TMP( GetTempFileName기능 때문에) 선호하는 사람이 될 수 있습니다 .
aschipfl

답변:


10

구체적으로 질문에 대답하려면 :

둘의 차이점은 무엇입니까?

다른 점이 없다. 그들은 같은 경로에서 다른 별명입니다. Mark가 언급했듯이 일부 프로그램은 %TMP%다른 프로그램을 사용 하고 다른 프로그램은 을 사용 %TEMP%합니다. Windows는 기본적으로 서로 다른 프로그램간에 일관성을 유지하고 동일한 프로그램에서 둘 다 사용하는 것과 같은 개발자 오류로부터 보호하기 위해 둘 다 동일한 경로에 할당합니다.

또한,주의 %Path%변수 중 하나와는 아무 상관이 없습니다 %TMP%또는를 %TEMP%. %Path%시스템 변수이며 시스템 변수 %TMP%%TEMP%사용자 변수입니다. 시스템 버전은에 링크됩니다 C:\windows\TEMP. AFAIK, "시스템"사용자 만이 간단한 테스트에서 입증 된 것처럼 실제로 이러한 변수를 사용할 수 있습니다. cmd 창을 열고 echo %TMP%or를 입력 echo %TEMP%하면 사용자 버전의 변수에 정의 된 경로가 반환됩니다. 그러나 %Path%사용자 버전이 없으므로 (기본적으로) 할 수 echo %Path%있으며 시스템 변수의 값을 반환합니다.

프로그램이 "경로"시스템 변수를 어떻게 사용하는지는 확실하지 않습니다. cygwin이 언급 한 것일 수도 있지만 TMP 나 TEMP와는 아무런 관련이 없습니다.

그것이 귀하의 질문에 대답하기를 바랍니다.

편집 : 방금 무엇을 기억했는지 %Path%— 파일의 전체 경로를 사용할 필요없이 변수에 지정된 경로에있는 파일에 액세스 할 수 있습니다. 예를 들어, 추가에 "C : \ MYPROG \ 빈"% 경로 %에 방금 입력하게됩니다 myprogmyprog --help처럼 전체 경로를 입력하지 않고 명령 줄에 등 "C:\myprog\bin\myprog.exe" --help. 물론 명령 줄 사용은 단지 예일 뿐이므로 전체 경로가 없어도 모든 프로그램이나 인터페이스가 모든 종류의 파일에 액세스 할 수 있습니다.


일부 프로그램은 다른 프로그램을 사용하기 때문에 다른 프로그램이 필요하므로 둘 다 필요합니다.
user151019

흥미 롭군 때때로 액세스가 거부되어 디렉토리를 압축 할 수 없습니다. TEMP와 TMP를 변경하여 %USERPROFILE%\AppData\Local\Temp내 문제 중 하나를 해결했지만 더 많은 문제가 발생했습니다. 다시로 변경했습니다 C:\Windows\Temp. 사용자 버전이 있으면 시스템 에서을 C:\Windows\Temp사용할 수 있지만 사용할 수 %USERPROFILE%\AppData\Local\Temp있고 모든 사람이 행복합니다. 시도해 볼게요. 감사!
inf3rno

3

다른 프로그램이 다른 프로그램을 사용하므로 둘 다 필요합니다.

그것들은 같은 것을 가리키고 있다고 가정 할 때 매우 잘못 작성된 프로그램 만이 두 가지를 모두 사용하기 때문에 같은 장소로 설정 될 필요는 없습니다.

/ tmp는 환경 변수 TMPDIR을 사용하는 Unix의 임시 파일에 대한 공통 디렉토리입니다.

메모리에서 (80 년대 중반에 이것을 사용했을 때) TEMP는 DOS에서 사용 된 원래의 것으로 TEMP는 / tmp와 일치하도록 Unix에서 포팅 된 프로그램에 의해 사용되는 경향이있었습니다. 그러나 프로그램이 DOS로 작성되었을 때 다른 개발자가 다른 것을 사용하는 컨트롤이 없었습니다. 현대 Windows에서 Microsoft의 기본값은이 문서를 참조하십시오.


2
실제로 표준 SUS 변수는 TMPDIR입니다. 이 표준에는 DOS 세계에서 유래 한 TMP또는 중 하나에 대한 언급이 없습니다 TEMP.
JdeBP

@J, SUS는 ????
Pacerier

1
조금 늦었지만 지금은 단일 UNIX 사양입니다.
Tim Diggins
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.