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-----