You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何批量删除Shotwell中的所有标签

如何批量删除Shotwell中的所有标签

嘿,我完全懂你现在的烦恼——把带一堆冗余标签的库存照片导入Shotwell后,就算把图片上的标签都删掉了,还是留着一大堆空标签,一个个手动删除实在太折腾人了!别着急,咱们可以通过Shotwell的后台数据库来批量清理这些没用的空标签,步骤超简单:

  • 第一步:先彻底关闭Shotwell,确保数据库没有被程序占用,避免操作过程中损坏数据
  • 第二步:找到Shotwell的数据库文件,它藏在用户目录的隐藏文件夹里,路径是:~/.local/share/shotwell/data/photo.db
  • 第三步:重要提醒:先给数据库做个备份,以防万一出问题能恢复,在终端里运行这条命令:
    cp ~/.local/share/shotwell/data/photo.db ~/.local/share/shotwell/data/photo.db.bak
    
  • 第四步:打开终端,用SQLite工具连接到这个数据库,输入命令:
    sqlite3 ~/.local/share/shotwell/data/photo.db
    
  • 第五步:在SQLite的交互界面里,执行这条SQL语句,它会删除所有没有关联任何照片的空标签:
    DELETE FROM tags WHERE id NOT IN (SELECT tag_id FROM photo_tags);
    
  • 第六步:输入.quit退出SQLite工具,然后重新打开Shotwell,你会发现那些烦人的空标签已经全部消失啦!

简单说下原理:Shotwell把标签和照片的关联关系存在photo_tags表中,标签本身存在tags表中,上面的SQL语句就是找出所有没被任何照片关联的“孤儿标签”,然后一次性清理掉它们。

备注:内容来源于stack exchange,提问作者mr.hooman

火山引擎 最新活动