TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #172 1.1K
Скрипт автоматического создания и удаления временных файлов

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

➕ Создание временных файлов и директорий. Используем mktemp:


TEMP_FILE=$(mktemp)
echo "Временный файл: $TEMP_FILE"


Или создаем временную папку:


TEMP_DIR=$(mktemp -d)
echo "Временная папка: $TEMP_DIR"


📂 Автоматическое удаление. trap удалит временные файлы при завершении скрипта:


#!/bin/bash
TEMP_FILE=$(mktemp)
trap "rm -f $TEMP_FILE" EXIT

echo "Создан временный файл: $TEMP_FILE"
sleep 5 # Эмуляция работы скрипта


trap выполняет rm -f $TEMP_FILE при завершении скрипта – даже если он аварийно прерван.

👩‍🎨 Скрипт для очистки старых временных файлов. Удалим файлы старше 1 дня в /tmp:


find /tmp -type f -mtime +1 -delete


Для папок:


find /tmp -type d -empty -mtime +1 -exec rmdir {} \;


🤖 Добавим в crontab ежедневную очистку /tmp:


0 3 * * * find /tmp -type f -mtime +1 -delete


В 3 часа ночи старые временные файлы будут автоматически удаляться.

BashTex 📱 #bash #utils
  • 👍 6
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →