Введение

В вычислительной технике временная папка или временный каталог — это каталог, используемый для хранения временных файлов. Многие операционные системы и некоторые программы автоматически удаляют содержимое этого каталога при загрузке системы или через регулярные интервалы времени, оставляя сам каталог нетронутым. Из соображений безопасности рекомендуется, чтобы у каждого пользователя был свой собственный временный каталог, поскольку в прошлом существовали уязвимости в системе безопасности, связанные с временными файлами из-за неправильных прав доступа к файлам в программах или гонок данных. Стандартной процедурой системного администрирования является уменьшение объема используемого дискового пространства путем удаления временных файлов. В многопользовательских системах это может привести к удалению активных файлов и нарушению работы пользователей. Чтобы избежать этого, некоторые процедуры освобождения места удаляют только неактивные или "старые" файлы — те, которые не читались и не изменялись в течение нескольких дней.

Практические вопросы

В Unix каталог /tmp часто располагается на отдельном разделе диска. В системах с магнитными жесткими дисками производительность (общая системная пропускная способность операций ввода-вывода – IOPS) повышается, если перемещения головок диска при обычном вводе-выводе отделены от доступа к временному каталогу. Всё чаще для временных каталогов или папок используются решения на основе памяти, такие как "RAM-диски", создаваемые в оперативной памяти, или устройство общей памяти в Linux. Твердотельный накопитель на флэш-памяти менее подходит для использования в качестве временного хранилища для чтения и записи из-за асимметричности времени чтения и записи, а также из-за износа. (См. выравнивание износа.)

Традиционные места

В MS DOS и Microsoft Windows временная директория задается переменной среды `TEMP` или `TMP`. С помощью API Windows можно найти путь к временной директории, используя функцию `GetTempPath`, или получить путь к уникально именованному временному файлу, используя функцию `GetTempFileName`. Изначально значением по умолчанию был `%SystemRoot%\TEMP`, затем `%SystemRoot%\Windows\Temp`. В эпоху Windows XP временная директория устанавливалась для каждого пользователя как `%USERPROFILE%\Local Settings\Temp`, хотя пользователь все еще мог изменить ее расположение. Для Windows Vista, 7, 8 и 10 временное местоположение снова было перемещено в раздел AppData профиля пользователя, обычно `%USERPROFILE%\AppData\Local\Temp`. Во всех версиях Windows к временной директории можно получить доступ, например, в проводнике, окнах "Выполнить" и во внутреннем коде приложения, используя `%TEMP%` или `%TMP%`. Как и в случае с другими переменными среды, `%TEMP%` или `%TMP%` являются синонимами полного пути. В Unix и Linux глобальные временные каталоги – `/tmp` и `/var/tmp`. Веб-браузеры периодически записывают данные в каталог `/tmp` во время просмотра страниц и загрузки файлов. Обычно `/var/tmp` предназначен для постоянных файлов (так как они могут сохраняться после перезагрузки), а `/tmp` – для более временных файлов. См. Стандарт иерархии файловой системы (Filesystem Hierarchy Standard). Кроме того, пользователь может установить переменную среды `TMPDIR`, чтобы она указывала на предпочтительную директорию (где разрешено создание и изменение файлов). В macOS, приложение с ограниченными правами доступа (sandboxed application) не может использовать стандартные места Unix, но может использовать пользовательский каталог, путь к которому предоставляется функцией `NSHomeDirectory`. В OpenVMS используются `SYS$TEMP` и `SYS$SCRATCH`, а в AmigaDOS – `TEMP:` и `T:`.