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
для временных файлов в памяти или создание файла с использованием даты и идентификатора процесса ($$
), но эти методы сопряжены с большим риском конфликтов.
См. также
- Страница руководства mktemp: выполните
man mktemp
в Bash. - Руководство GNU Coreutils: для подробностей по стандартным командам GNU/Linux.
- Расширенное руководство по скриптингу в Bash: для более сложных приемов скриптинга и примеров.