[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Nettoyer un répertoire plein de .deb ?



On Mon, Aug 03, 2009 at 04:02:43PM +0200, Éric Seigne wrote:
> Bonjour,
> es-ce qu'il existe une commande rapide et efficace pour faire le
> ménage dans un dossier plein de paquets .deb pour ne garder que ceux
> dont les numéros de versions sont les plus récents ?
> 
> Par exemple j'ai
> 
> package_1.2.0-0_i386.deb
> package_1.2.0-1_i386.deb
> package_1.3.1-0_i386.deb
> package_1.3.4-6_i386.deb
> package_1.3.4-7_i386.deb
> 
> et je ne veux garder que le dernier ... y a ça, sans se lancer dans
> des outils de gestion de dépots ?
> 
> Merci d'avance,
> Éric

#!/bin/sh

dry_run=

doit() {
    $dry_run "$@"
}

while test $# != 0; do
    case "$1" in
        -n) dry_run=echo ;;
        --) shift; break; ;;
        *)  break ;;
    esac
    shift
done

if test $# != 1; then
    echo "usage: foo.sh <directory>" 2>&1
    exit 1
fi

cd "$1"

for p in $(ls *.deb|sed -e 's/_.*//'|sort -u); do
    keep=
    for v in $(ls "${p}_"*".deb" | sed -e 's/^[^_]*_\([^_]*\)_[^_]*\.deb$/\1/'); do
        if test -z "$keep"; then
            keep=$v
        elif dpkg --compare-versions "$keep" gt "$v"; then
            doit rm -f "${p}_${v}_*.deb"
        else
            doit rm -f "${p}_${keep}_*.deb"
            keep=$v
        fi
    done
done

-- 
Intersec <http://www.intersec.com>
Pierre Habouzit <pierre.habouzit@intersec.com>
Tél : +33 (0)1 5570 3346
Mob : +33 (0)6 1636 8131
Fax : +33 (0)1 5570 3332
37 Rue Pierre Lhomme
92400 Courbevoie

Attachment: signature.asc
Description: Digital signature


Reply to: