tg-me.com/bash_srv/79
Last Update:
🗑️ Bash-совет дня: safe_rm — «корзина» для удаляемых файлов
Сколько раз вы случайно удаляли важный конфиг? Давайте сделаем rm
более дружелюбным — вместо мгновенного уничтожения файлы будут складываться в «корзину» и автоматически очищаться спустя 30 дней.
#!/usr/bin/env bash
# safe_rm — перемещает удаляемые файлы в локальную «корзину»
TRASH_DIR="$HOME/.local/share/Trash/files" # куда складываем
mkdir -p "$TRASH_DIR"
stamp=$(date +%Y-%m-%d_%H-%M-%S)
for item in "$@"; do
if [[ ! -e $item ]]; then
printf '⚠️ %s: no such file or directory\n' "$item" >&2
continue
fi
mv -- "$item" "$TRASH_DIR/$(basename "$item")_$stamp"
done
# авто-очистка файлов, которым больше 30 дней
find "$TRASH_DIR" -type f -mtime +30 -delete 2>/dev/null
Быстрый старт
sudo install -m 755 safe_rm /usr/local/bin/
echo "alias rm='safe_rm'" >> ~/.bashrc && source ~/.bashrc
Проверяем
touch important.cfg
rm important.cfg
ls ~/.local/share/Trash/files # Файл на месте 🎉
> Лайфхак:
> Хотите разные сроки хранения? Меняйте
-mtime +30
на нужное количество дней.> Регулярные выражения в
find
позволяют тоньше выбирать, что чистить (например, только логи *_$(date +%Y-%m-*)
).Спасайте нервы и конфиги! 😉
👉@bash_srv
BY Bash Советы

Share with your friend now:
tg-me.com/bash_srv/79