2011-09-06 19:43:10 +0000 2011-09-06 19:43:10 +0000
65
65
Advertisement

Где находится временный каталог в Linux?

Advertisement

Есть ли в Linux стандартный временный каталог для общего пользования, например, папка Windows C:\Temp? Если да, то где она находится? Я нашел вопрос SO о программном поиске каталога tmp , но я хочу заранее установить временное расположение в конфигурационном файле XML.

Advertisement

Ответы (5)

97
97
97
2011-09-06 20:09:43 +0000

В стандарте Filesystem Hierarchy Standard версии 3.0 сказано:

/tmp : Temporary files

Каталог /tmp должен быть доступен для программ, которым требуются временные файлы.

Программы не должны предполагать, что какие-либо файлы или каталоги в каталоге /tmp сохраняются между вызовами программы.

Оправдание

Стандарт IEEE POSIX.1-2008 перечисляет требования, аналогичные указанным выше. Хотя данные, хранящиеся в /tmp, могут быть удалены с учетом специфики сайта, рекомендуется удалять файлы и каталоги, расположенные в /tmp, при каждой загрузке системы.

FHS добавила эту рекомендацию на основе исторического прецедента и общепринятой практики, но не сделала ее требованием, поскольку системное администрирование не подпадает под действие данного стандарта.

/var/tmp : Временные файлы, сохраняемые между перезагрузками системы

Каталог /var/tmp становится доступным для программ, которым требуются временные файлы или каталоги, сохраняемые между перезагрузками системы. Поэтому данные, хранящиеся в каталоге /var/tmp, более устойчивы, чем данные в каталоге /tmp.

Файлы и каталоги, расположенные в /var/tmp, не должны удаляться при загрузке системы. Хотя данные, хранящиеся в /var/tmp, обычно удаляются с учетом специфики сайта, рекомендуется, чтобы удаление происходило с меньшим интервалом, чем в /tmp.

Также в The Open Group Base Specifications Issue 7, Environment Variables упоминается следующее:

TMPDIR Эта переменная должна представлять собой каталог, доступный для программ, которым необходимо место для создания временных файлов.

11
11
11
2017-03-28 17:56:59 +0000

Это старый вопрос, поэтому сегодня есть еще один вариант. Дистрибутивы Linux, полагающиеся на systemd (что составляет 90% от них), теперь могут использовать каталог $XDG_RUNTIME_DIR XDG Base Directory Specification ) для хранения определенных типов временных файлов. Обычно он расположен в /run/user/$uid. Это каталог для каждого пользователя с разрешениями 700, который обеспечивает лучшую безопасность. Это крепление tmpfs, обеспечивающее производительность. Недостатком tmpfs является то, что его следует использовать только для хранения маленьких файлов и сокетов.

я смотрю на это как на брак /tmp и /var/run.

10
Advertisement
10
10
2011-09-06 20:13:09 +0000

Да/tmp предназначен для общего пользования. Смотрите здесь и здесь на стандарте иерархии файловой системы.

/tmp/ Временные файлы (см. также /var/tmp). Часто не сохраняются между перезагрузками системы.

С некоторыми подробностями, перечисленными в PDF.

2
2
2
2011-09-06 20:23:58 +0000

Вы не можете заранее выбрать одно временное имя каталога, которое будет работать для любой системы Linux. На самом деле, Вы не можете сделать это и на Windows. Согласно статье Википедии статья о временных папках , временный каталог в Windows определяется переменной окружения TEMP. Если бы вы просто использовали c:\Temp в качестве временной директории в системе Windows, которая устанавливает TEMP на что-то другое, то любая программа, использующая ваш XML-файл для выбора временной директории, не справилась бы с этой задачей.

Одним словом, системный временный каталог определяется средой на всех современных операционных системах, о которых я знаю, включая как Windows, так и любую UNIX-подобную систему. Установка одного статического пути в качестве временного каталога будет работать только до тех пор, пока не будут изменены значения по умолчанию.

В любом случае, стандартный временный каталог в типичной системе Linux равен /tmp. Это эквивалент C:\Temp в том смысле, что это only временная директория по умолчанию, а не универсальная. Даже если /tmp доступен, если пользователь (или система) установил переменную окружения TEMP, вместо нее следует использовать значение этой переменной.

Можно попробовать выбрать временную директорию относительно домашней директории пользователя, которую можно создать.

0
Advertisement
0
0
2019-07-27 13:18:41 +0000

Первоначальный вопрос был: Есть ли в Linux стандартный временный каталог. Если да, то где он находится? Папка(и) tmp находится(ются): File System/tmp & File System/var/tmp Содержимое /tmp может быть удалено - если вы знаете, какие файлы/папки необходимы/не нужны различным приложениям “по мере необходимости”. Необязательные файлы обычно загружаются приложением только для того, чтобы облегчить работу самого приложения на этом этапе, поэтому они больше не требуются после выполнения приложения. Папку /var/tmp вообще нельзя трогать.

Похожие вопросы

6
10
5
37
4
Advertisement
Advertisement