Создание временного файла

Bash:
Создание временного файла

Как это сделать:

В Bash есть встроенная команда mktemp для легкого создания временных файлов:

# Создаем временный файл
temp_file=$(mktemp)

# Посмотрим на наш свежесозданный временный файл
echo "Создан временный файл: $temp_file"

# Используем временный файл
echo "Некоторые данные" > "$temp_file"

# Читаем его
cat "$temp_file"

# Прибираемся: удаляем файл, когда он больше не нужен
rm "$temp_file"

Вывод:

Создан временный файл: /tmp/tmp.Iy5nv69sed
Некоторые данные

Подробнее

Временные файлы существуют в UNIX с самых ранних дней, позволяя пользователям обрабатывать промежуточные данные без необходимости вручную их удалять. В скриптах Bash mktemp является современным решением, предлагающим возможности для создания как файлов (mktemp), так и директорий (mktemp -d). Команда создает уникальный файл каждый раз, когда она вызывается, что позволяет избегать проблем с коллизиями файлов, возникающих, когда одновременно выполняются несколько экземпляров скрипта или разные скрипты.

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

Некоторые альтернативы mktemp включают использование /dev/shm для временных файлов в памяти или создание файла с использованием даты и идентификатора процесса ($$), но эти методы сопряжены с большим риском конфликтов.

См. также