Linux에서 임시 디렉터리는 어디에 있나요?

Linux에서 임시 디렉터리는 어디에 있나요?

Linux에는 Windows C:\Temp폴더와 같이 일반 용도로 사용할 수 있는 표준 임시 디렉터리가 있습니까? 그렇다면 어디에 위치해 있나요? 나는 찾았다tmp프로그래밍 방식으로 디렉토리를 찾는 것에 대한 SO 질문, 하지만 XML 구성 파일에 미리 임시 위치를 설정하고 싶습니다.

답변1

그만큼파일 시스템 계층 표준버전 3.0은 다음과 같이 말합니다.

/tmp : 임시 파일

임시 파일이 필요한 프로그램에 대해 디렉토리 /tmp를 사용할 수 있어야 합니다.

/tmp프로그램은 프로그램 호출 사이에 의 파일이나 디렉터리가 보존된다고 가정해서는 안 됩니다 .

이론적 해석

IEEE 표준 POSIX.1-2008에는 위 섹션과 유사한 요구 사항이 나열되어 있습니다. 에 저장된 데이터는 /tmp사이트별로 삭제될 수 있지만 /tmp시스템이 부팅될 때마다 에 있는 파일과 디렉터리를 삭제하는 것이 좋습니다.

FHS는 역사적 선례와 일반적인 관행을 바탕으로 이 권장 사항을 추가했지만 시스템 관리가 이 표준의 범위에 속하지 않기 때문에 이를 요구 사항으로 만들지 않았습니다.

/var/tmp : 시스템 재부팅 사이에 보존되는 임시 파일

/var/tmp디렉토리는 시스템 재부팅 사이에 보존되는 임시 파일이나 디렉토리가 필요한 프로그램에 사용할 수 있습니다. 따라서 에 저장된 데이터는 /var/tmp에 저장된 데이터보다 더 영구적입니다 /tmp.

/var/tmp시스템이 부팅될 때 에 있는 파일과 디렉터리를 삭제하면 안 됩니다. 에 저장된 데이터는 /var/tmp일반적으로 사이트별 방식으로 삭제되지만 삭제 간격은 에서보다 덜 빈번하게 발생하는 것이 좋습니다 /tmp.

또한Open Group 기본 사양 문제 7, 환경 변수다음을 언급합니다.

TMPDIR 이 변수는 임시 파일을 생성할 장소가 필요한 프로그램에 사용할 수 있는 디렉토리의 경로 이름을 나타냅니다.

체계화된이것에 대해서도 말할 수 있습니다 :

/tmp/그리고/var/tmp/Linux 시스템이 임시 파일을 위해 제공하는 두 개의 누구나 쓸 수 있는 디렉터리입니다. 전자는 일반적으로 켜져 있습니다.tmpfs따라서 RAM/스왑으로 지원되며 재부팅할 때마다 플러시됩니다. 후자는 일반적으로 적절하고 지속적인 파일 시스템이므로 물리적 저장소의 지원을 받습니다. 이는 다음을 의미합니다.

  1. /tmp/더 작고 크기가 제한된 파일에만 사용해야 합니다. /var/tmp/다른 모든 용도로 사용해야 합니다.

  2. 부팅 주기 동안 유지되는 데이터는 /tmp/.

$TMPDIR환경 변수가 설정된 경우 해당 경로를 사용하고 직접 사용 /tmp/하거나 사용하지 마십시오 /var/tmp/.

보다파일 계층 구조(7)Linux 시스템의 이 두 디렉터리(그리고 대부분의 다른 디렉터리)에 대한 자세한 내용은

경로는 다음을 사용하여 쿼리할 수 있습니다.시스템 경로:

$ systemd-path temporary
/tmp
$ systemd-path temporary-large
/var/tmp

FreeBSD,NetBSD,오픈BSD그리고잠자리비슷한 내용이 설명되어 있습니다.히어(7)맨 페이지.

답변2

이것은 오래된 질문이므로 오늘은 다른 옵션을 사용할 수 있습니다. systemd(90%) 에 의존하는 Linux 배포판은 이제 $XDG_RUNTIME_DIR디렉토리(XDG 기본 디렉토리 사양) 특정 유형의 임시 파일을 저장합니다. 일반적으로 에 위치해 있습니다 /run/user/$uid.

  • 700이것은 파일을 비공개 로 유지하는 사용자별 디렉터리입니다.
  • tmpfs뛰어난 성능을 갖춘 마운트(RAM 드라이브라고도 함) 입니다.
  • 자동으로 정리됩니다

단점은 tmpfs작은 파일(PID 파일, 잠금 파일, 소켓 등)을 저장하는 데에만 사용해야 한다는 것입니다.

답변3

예 /tmp는 일반적인 용도입니다. 보다여기그리고여기파일 시스템 계층 표준.

/tmp/ 임시 파일(/var/tmp 참조) 시스템 재부팅 사이에 보존되지 않는 경우가 많습니다.

PDF에 더 자세한 내용이 나와 있습니다.

답변4

초기 질문은 다음과 같습니다. Linux에는 표준 임시 디렉토리가 있습니까? 그렇다면 어디에 위치해 있나요? tmp 폴더는 다음 위치에 있습니다: File System/tmp & File System/var/tmp /tmp 내용은 삭제될 수 있습니다. - "필요에 따라" 다양한 앱에 어떤 파일/폴더가 필요하거나 필요하지 않은지 알고 있는 경우 기초. 필요하지 않은 파일은 일반적으로 해당 시점에만 앱 자체를 활성화하기 위해 앱에서 다운로드한 파일이므로 앱이 실행된 후에는 더 이상 필요하지 않습니다. /var/tmp 폴더는 절대 건드리지 마세요.

관련 정보