バックアップフォルダから古いパッケージバージョンを削除する

バックアップフォルダから古いパッケージバージョンを削除する

tar.xzファイル名にバージョン番号を含む複数のパッケージを含むフォルダがあります。たとえば、次のようになります。
vlc-2.2.2-3-x86_64.pkg.tar.xz(以前のパッケージなので削除する必要があります)
vlc-2.2.3-2-x86_64.pkg.tar.xz(新しいパッケージなので保持する必要があります)
bashスクリプトの作業は、古いパッケージを確認して削除して新しいパッケージを保持して重複しないようにすることです。

答え1

作業に適したツールはpaccache1です。

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

これにより、指定されたキャッシュディレクトリを介して、最新バージョンを除く各パッケージのすべてのキャッシュされたバージョンが削除されます-r。すぐに削除して後で削除する代わりに、いつでも古いパッケージを別のディレクトリに移動できます。詳細については、実行してください。-k 1-c
paccache -h


1:パックマンパッケージには、柔軟なパックマンキャッシュクリーンアップユーティリティが含まれています。

答え2

フォルダが与えられたら、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

関連情報