首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用单行命令删除已禁用(未使用)的快速包?

如何使用单行命令删除已禁用(未使用)的快速包?
EN

Ask Ubuntu用户
提问于 2018-05-15 17:36:03
回答 3查看 57.7K关注 0票数 63

当我运行snap list --all命令时,它会显示所有已安装的snap包版本。

代码语言:javascript
复制
Name                  Version       Rev   Tracking  Developer     Notes
atom                  1.26.1        150   stable    snapcrafters  classic
brave                 v0.22.669dev  23    stable    brave         -
core                  16-2.32.6     4571  stable    canonical     core
core                  16-2.32.5     4486  stable    canonical     core,disabled
firefox               59.0.2-1      71    stable    mozilla       disabled
firefox               60.0-2        85    stable    mozilla       -
gimp                  2.10.0        38    stable    snapcrafters  disabled
gimp                  2.10.0        39    stable    snapcrafters  -
gimp                  2.8.22        30    stable    snapcrafters  disabled
gnome-3-26-1604       3.26.0        64    stable/…  canonical     -
gnome-3-26-1604       3.26.0        62    stable/…  canonical     disabled
gnome-characters      3.28.0        86    stable/…  canonical     -
gnome-characters      3.26.2        69    stable/…  canonical     disabled
gnome-logs            3.26.2        25    stable/…  canonical     disabled
gnome-logs            3.28.0        31    stable/…  canonical     -
gnome-system-monitor  3.26.0        36    stable/…  canonical     disabled
gnome-system-monitor  3.26.0        39    stable/…  canonical     -
libreoffice           6.0.3.2       59    stable    canonical     disabled
libreoffice           6.0.4.2       63    stable    canonical     -

现在有那么多的残疾人包已经不再使用了。所以我想移除那些包裹。这里的命令是snap remove gnome-3-26-1604 --revision=62。现在,我必须为所有的修订和所有的软件包一个一个地做。是否有任何命令将删除禁用或未使用的snap包的单行命令?

提前谢谢..。

EN

回答 3

Ask Ubuntu用户

发布于 2020-01-05 02:22:09

在看到迈克的纸条关于这些脚本因输出列数的变化而在不同版本之间中断之后,我去查看是否有任何机器可读的绑定到这些内容。

我发现的是快照的REST

snap list --all等价的是

代码语言:javascript
复制
curl --silent --show-error \
    --get --data select=all \
    --unix-socket /run/snapd.socket \
    http://localhost/v2/snaps

它返回JSON。若要将其过滤为非活动包并将其转到snap remove命令列表中,可以使用jq

代码语言:javascript
复制
jq --raw-output '
    .result[] | 
    select(.status != "active") | 
    "snap remove --revision=\(.revision|@sh) \(.name|@sh)"
'

从技术上讲,您可以在一行上运行所有这些(我插入的空格是为了提高可读性),但它非常少,所以我用一个脚本包装了它:remove-disabled-snaps.sh

票数 4
EN

Ask Ubuntu用户

发布于 2018-05-25 08:18:18

清除/删除旧的/禁用的快照的功能以前已经是讨论,但还没有实现。同时,不幸的是,这是一个手动的过程。

票数 3
EN

Ask Ubuntu用户

发布于 2023-04-25 07:08:00

我刚做了这个:

  • 列出所有未使用/禁用的快照包:= grep禁用
  • 将输出复制并粘贴到电子表格中

通常,输出在一列中。只需找到&替换,重复用单个空格替换双空格,直到只剩下一个空格。

  • 使用单个空格作为分隔符,将列拆分为几个列。每个电子表格都有这样一个工具。在LibreOffice中,它是数据->列的文本。
  • 删除不再需要的列。
  • 添加一些包含sudo snap remove--revision的列
  • 只需复制并粘贴您的东西回到控制台。
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1036633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档