Вопрос или проблема
Я читал о истории Unix и заинтересовался csh
, так как он установлен по умолчанию в OpenBSD. В документации к csh
была ссылка на “W Joy – Введение в C shell”, которую мне удалось найти. В главе 1.3 описывается простая переадресация файлов и приводится пример, который меня несколько озадачил:
Система обычно сохраняет файлы, которые вы создаете с помощью ‘>’ и все остальные файлы. Таким образом, по умолчанию файлы являются постоянными. Если вы хотите создать файл, который будет удален автоматически, вы можете начать его имя с символа ‘#’, этот ‘временный’ символ обозначает, что файл будет временным.* Система удалит такие файлы через несколько дней, или раньше, если место на диске станет слишком ограниченным. Таким образом, выполняя команду date выше, мы не хотим сохранять вывод навсегда, поэтому мы скорее сделаем
date > #now
Теперь я никогда не слышал о временных файлах. Это давно забытая вещь? Это все еще работает сегодня? Это просто отключено? Когда они будут удалены (несколько дней?)? Чем (cron?)?
Я выполнил команду на OpenBSD и на системе Linux (date > '#now'
, потому что это комментарий в /bin/sh
), но я не могу дождаться (или могу просто ответить себе через “несколько дней”).
Кто-нибудь знает об этом больше, желательно с дополнительной историей. Я не смог найти ничего за несколько быстрых поисков.
Спасибо заранее!
Теперь я никогда не слышал о временном файле. Это давно забытая вещь? Это все еще работает сегодня? Это просто отключено? Когда он будет удален (несколько дней?)? Чем (cron?)?
Автоматическое удаление ненужных файлов через cron-джобы раньше было обычным делом в многопользовательских Unix-системах, судя по тому, что я прочитал. (По крайней мере, автоматическое удаление дампов памяти – много историй о людях, которые назвали свой самый важный проект ~/core
и потеряли его на следующей неделе.)
По умолчанию Emacs создает временные файлы, названные #foobar.txt#
, везде, где редактируется оригинал. (Или по крайней мере, это было раньше, в последний раз, когда я использовал emacs.) Вполне возможно, что многопользовательский Unix, в котором у автора FAQ была учетная запись, особенно если ему часто не хватало дискового пространства, имел специальный cron-джоб для автоматического удаления этих файлов, если они были старше X количества дней.
Ответ или решение
Что такое временный файл (scratch file) и актуален ли он сегодня?
Временные файлы (или "scratch files") – это файлы, создаваемые пользователями для временного хранения данных, которые не предполагается сохранять на длительный срок. В контексте использования командной оболочки Unix, таких как csh
(C shell), временный файл указывается с помощью символа #
в начале его имени. Это обозначение исторически использовалось для того, чтобы система автоматически удаляла такие файлы после определенного времени, как правило, через несколько дней, или раньше, если место на диске становится ограниченным.
Как это работало?
Как упоминается в книге "W Joy – An Introduction to the C shell", если вы создавали файл с именем, начинающимся на #
, например #now
, то система воспринимала его как временный. Такие файлы помогали пользователям не беспокоиться о накоплении мусора на диске, поскольку они автоматически удалялись. Фактически, это обеспечивало более аккуратное управление дисковым пространством на многопользовательских системах.
Актуальность в современных системах
На современных системах Unix и Linux концепция временных файлов не исчезла, но реализация различается в зависимости от операционной системы и конкретных настроек. Например, современные редакторы, такие как Emacs, создают временные файлы с именем, начинающимся и заканчивающимся символом #
. Если вы редактируете файл, Emacs может создать временный файл, вроде #foobar.txt#
, содержащий не сохранившиеся изменения.
Однако автоматическое удаление таких временных файлов, как это было задумано в ранних версиях Unix, не является стандартной функцией для большинства современных систем. Хотя на некоторых системах могут быть настроены задания cron для периодического удаления старых временных файлов, это обычно не происходит по умолчанию. Вместо этого предпочтение отдается пользовательскому управлению временными файлами.
Удаление временных файлов
Удаление временных файлов может происходить по различным причинам и методами. Некоторые системы могут использовать сценарии cron для автоматического удаления файлов, старше определенного времени (например, 7 дней). Однако, чтобы узнать, настроены ли такие задачи на вашей системе, необходимо проверить конфигурации cron или существующие утилиты очистки.
Заключение
Хотя концепция временных файлов все еще актуальна, она больше не является встроенной функцией большинства современных систем. Пользователи могут создавать временные файлы, но их автоматическое удаление зависит от конкретных настроек системы. Если вы хотите использовать временные файлы в своем рабочем процессе, рекомендуется разработать собственные методы управления ими, чтобы избежать переполнения дискового пространства.