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

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

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

решение1

TheСтандарт иерархии файловой системыверсия 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 Base, выпуск 7, Переменные средыупоминает следующее:

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

системдтакже имеет свое мнение по этому поводу:

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

  1. /tmp/следует использовать только для небольших файлов с ограниченным размером; /var/tmp/следует использовать для всего остального.

  2. Данные, которые должны сохраниться после цикла загрузки, не следует помещать в /tmp/.

Если $TMPDIRпеременная окружения установлена, используйте этот путь и не используйте /tmp/напрямую /var/tmp/.

Видетьиерархия файлов(7)для получения подробной информации об этих двух (и большинстве других) каталогах системы Linux.

Пути можно запросить с помощьюsystemd-путь:

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

FreeBSD,NetBSD,OpenBSDиDragonFlyесть что-то похожее, описанное вздесь(7)страница руководства.

решение2

Это старый вопрос, поэтому сегодня доступен другой вариант. Дистрибутивы Linux, которые полагаются на systemd(а это 90% из них), теперь могут использовать $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 вообще не следует трогать.

Связанный контент