如何在Ubuntu上的文件上设置标签?
我想标记所有类型的文件:
- 图片
- 音讯
- 文本
- 办公室
- 目录
我发现的唯一解决方案是MetaTracker。
但是这个项目似乎已经死了。
如何解决此桌面问题?
如果您可以将这些标签与nextcloud之类的服务器同步,那就太好了。
如何在Ubuntu上的文件上设置标签?
我想标记所有类型的文件:
我发现的唯一解决方案是MetaTracker。
但是这个项目似乎已经死了。
如何解决此桌面问题?
如果您可以将这些标签与nextcloud之类的服务器同步,那就太好了。
Answers:
最好的方法似乎是标记文件系统tagsistant。
从首页:
Tagsistant是Linux的基于标签的文件系统,它将目录转换为标签并为您搜索文件。
Mount Tagistant
只需告诉Tagsistant您要使用的目录名称即可,例如您家中的myfiles /。现在,此目录是一个特殊位置,具有可帮助您管理文件的自定义规则。
$ tagsistant ~/myfiles
$
创建标签
想想标签下的目录/作为在上面写一些东西的白色标贴。根据需要创建任意数量的标记,以准备标记文件。
$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi
标记文件
在标签/中创建标签后,该标签将在商店/中可用。在其中复制文件:这就是标记文件的方式。@标记标记列表的末尾,它是必需的。
$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@
通过标签查找文件
通过选择所需的多个标签来构成搜索查询。您甚至可以通过在它们之间放置一个+ /来组合多个查询的结果,例如在startrek / + / starwars /中,它将标记为startrek的文件与标记为starwars的文件合并。
$ ls ~/myfiles/store/startrek/@
first_contact.avi
$ ls ~/myfiles/store/startrek/+/starwars/@
first_contact.avi
the_return_of_the_jedi.avi
激活标签之间的关系
$ mkdir ~/myfiles/relations/scifi/includes/startrek
$ ls ~/myfiles/store/scifi/@
first_contact.avi # 1 file...
$ mkdir ~/myfiles/relations/scifi/includes/starwars
$ ls ~/myfiles/store/scifi/@
first_contact.avi
the_return_of_the_jedi.avi # 2 files!
Tagsistant理解以下几种关系:
还有更多!
标记整个目录
$ cp -R ~/Photos/London ~/myfiles/store/photos/@
$ ls -l ~/myfiles/store/photos/@/
London
$ ls -l ~/myfiles/store/photos/@/London/
-rw------- 1 tx0 tx0 2.3M Sep 28 2009 bridge.jpg
-rw------- 1 tx0 tx0 3.0M Aug 30 2011 trafalgar_square.jpg
[ ... more files here ... ]
使用Tagsistant,您可以标记整个目录。目录本身将被标记,而不是内部文件,从而在标记db中节省空间。
使用三重标签
$ ls ~/myfiles/store/document:/author/eq/Tx0/@
$ ls ~/myfiles/store/document:/title/inc/Strategic/@
$ ls ~/myfiles/store/pictures:/aperture/gt/5.6/@
$ ls ~/myfiles/store/time:/hour/lt/3/@
三重标签是由名称空间(由冒号终止)形成的高级标签,该名称空间标识标签的关注域,使标签合格的键,运算符(等号等于,gt大于,lt小于和inc for包括),最后是一个量化标签的值。
在我看来,这似乎是Linux上文件标记的最一致,最优雅的方法。它已经存在了10多年,因此它也是一种成熟的解决方案,不会很快消失。
以前曾问过类似的问题:从不同的文件夹中选择文件
在鹦鹉螺中是否可以从一个文件夹中选择一堆文件,然后转到另一个文件夹并向选择中添加更多文件?
接受6票赞成的答案是“不,很遗憾,这是不可能的。” 。
拒绝被劝阻,我写了一个bash脚本来解决这个问题。
为了回答这个问题,我开发了“ bafman
再次出生文件管理器”(Born Again File Manager),该方法取得了一定的成功,因为对答案的兴趣不大。
答案中有13个屏幕,因此以下是其中一个可让您了解的想法:
bash代码在第一个答案下方发布在单独的答案中,但由于修订过大而无法容纳30K限制,因此删除了答案。如果有人对bash脚本感兴趣,我很乐意复活该项目并将其发布在github中。
.bafmanDirs
和中.bafmanFiles
。
如果您要标记的文件托管在Nextcloud中以进行文件共享,则可以将Nextcloud文件自动标记应用程序与手动标记一起使用。
官方描述为:
用于Nextcloud的应用程序,可根据某些条件自动将标签分配给新上传的文件。
这些标记以后可用于控制保留,文件访问,自动脚本执行等。
它适用于Nextcloud 12和13。
要定义标签,管理员可以创建和管理一组规则组。每个规则组包含一个或多个通过运算符组合的规则。规则可以包括文件类型,大小,时间等条件。如果所有规则均评估为true,则请求与组匹配。上载文件时,将评估所有定义的组,并在匹配时将给定标签分配给文件。
从Owncloud / Nextcloud 9.x开始,在Web视图中使用文件管理器可以看到手动标记文件的方法。
如果您希望通过Ubuntu桌面文件管理器搜索标签,那么除非您使用WebDAV挂载网络共享并对Nextcloud WebDAV API进行某些操作,否则这可能无法工作。
我也需要标记文件,并决定在没有内置方法的情况下,我将在文件的文件名中实现标记。这样,您便具有bash表达式的全部功能来搜索带有特定标签的文件,不会出现丢失标签的cp和mv等问题,并且这些标签在gui文件管理器中可见。
例如,您可以决定在每个文件名的末尾添加(tag1,tag2 ...)“。
编辑:这很适合我,我的标签更多地表示三个组中一个或多个的文件成员身份。对于更通用的标签应用程序,在文件名末尾使用更轻松的语法(使用bash等)将类似于“ filename!tag1!tag2”。