Удалить старые версии пакетов в папке резервных копий

Предположим, вы хотите извлечь объект с id , равным 11 , где ваши данные находятся в ] xxx.js :

$ jq 'recurse(.Children[]) | select(.id == 11)' < xxx.js
{
  "id": 11,
  "Text": "CPU Package",
  "Children": [],
  "Min": "43,0 °C",
  "Value": "58,0 °C",
  "Max": "65,0 °C",
  "ImageURL": "images/transparent.png"
}
1
25.05.2016, 03:11
2 ответа

Правильным инструментом для этой работы является paccache1:

paccache -r -k 1 -c /path/to/cache/dir

Он удаляет -r все кэшированные версии каждого пакета, кроме самой последней -k 1 в каталоге кэша, указанном через -c. Вы всегда можете не удалять старые пакеты сразу, а переместить их в другой каталог и удалить только позже.
Для получения дополнительной информации выполните paccache -h.


1: Гибкая утилита очистки кэша pacman, включенная в пакет pacman

2
27.01.2020, 23:35

Учитывая папку pool,сохранить последние 42 версии каждого пакета. Это предполагает, что имя пакета и его версия разделены символом подчеркивания.

pkgs=`find ${pool} -type f | cut -f1 -d_ | sort | uniq`
for pkg in ${pkgs}; do
  find `dirname ${pkg}` -name "`basename ${pkg}`_*" | sort -rV | sed -e '1,42d' | xargs -r rm
done
0
18.12.2020, 15:26

Теги

Похожие вопросы