Re: Nettoyer un répertoir e plein de .deb ?

Pierre Habouzit <[email protected]>
Newsgroups gmane.linux.debian.devel.french
Message-ID <[email protected]>
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 <[email protected]>
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
signature.asc (application/pgp-signature, 197 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkp3QM4ACgkQvGr7W6HudhzRUACfd4sR06lzkR/sZu4JFSgP8WMo
yj8AoJzkJJnuuOiJtallvFtEBAB/Cnhy
=iKlV
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.