При написании скриптов важно безопасно создавать временные файлы и каталоги. Для этого используется утилита
mktemp, которая создаёт уникальные имена и исключает гонки (race conditions).Создание временного файла:
mktemp
Команда создаёт файл в
/tmp и выводит его путь.Создание временного каталога:
mktemp -d
Флаг
-d создаёт каталог вместо файла.Создание файла с собственным шаблоном имени:
mktemp /tmp/script.XXXXXX
XXXXXX заменяются случайной последовательностью символов.Использование временного файла в shell-скрипте:
tmpfile=$(mktemp)
echo "data" > "$tmpfile"
Путь сохраняется в переменную, после чего файл можно использовать внутри скрипта.
Создание временного каталога для обработки данных:
tmpdir=$(mktemp -d)
cp *.log "$tmpdir"
Часто используется при обработке архивов или промежуточных файлов.
Автоматическая очистка временного файла через
trap:tmpfile=$(mktemp)
trap 'rm -f "$tmpfile"' EXIT
trap гарантирует удаление временного файла при завершении скрипта.Создание файла в конкретном каталоге:
mktemp -p /var/tmp backup.XXXXXX
Полезно, если требуется другой каталог вместо
/tmp.🔥 Использование
mktemp считается стандартной практикой для shell-скриптов — ручное создание файлов в /tmp через фиксированные имена может привести к конфликтам и проблемам безопасности.➡️ DevOps Ready | #практика