gue*_*tli 14 nautilus tagging filemanager
如何在 Ubuntu 上的文件上设置标签?
我想标记所有类型的文件:
我找到的唯一解决方案是MetaTracker。
但是这个项目似乎已经死了。
我该如何解决这个桌面问题?
如果您可以将这些标签与 nextcloud 这样的服务器同步,那就太棒了。
最好的方法似乎是标记文件系统tagistant。
从主页:
Tagsistant 是一个基于标签的 Linux 文件系统,它将目录转换为标签并为您搜索文件。
安装 Tagistant
只需告诉 Tagsistant 您要使用的目录的名称,例如您家中的 myfiles/。该目录现在是一个特殊的地方,带有可帮助您管理文件的自定义规则。
$ tagsistant ~/myfiles
$
Run Code Online (Sandbox Code Playgroud)
创建您的标签
把标签/下的目录想象成你在上面写一些东西的白色贴纸。根据需要创建任意数量的标签,准备标记您的文件。
$ mkdir ~/myfiles/tags/startrek
$ mkdir ~/myfiles/tags/starwars
$ mkdir ~/myfiles/tags/scifi
Run Code Online (Sandbox Code Playgroud)
标记您的文件
在 tags/ 中创建标签后,它将在 store/ 中可用。将您的文件复制到其中:这就是您标记文件的方式。@ 标记标签列表的结尾,它是必需的。
$ cp first_contact.avi ~/myfiles/store/startrek/@
$ cp the_return_of_the_jedi.avi ~/myfiles/store/starwars/@
Run Code Online (Sandbox Code Playgroud)
按标签查找文件
通过选择您想要的任意数量的标签来编写您的搜索查询。您甚至可以通过在中间放置一个 +/ 来组合多个查询的结果,例如在 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
Run Code Online (Sandbox Code Playgroud)
激活标签之间的关系
$ 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!
Run Code Online (Sandbox Code Playgroud)
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 ... ]
Run Code Online (Sandbox Code Playgroud)
使用 Tagsistant,您可以标记整个目录。目录本身将被标记,而不是其中的文件,从而节省标记数据库中的空间。
使用三重标签
$ 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/@
Run Code Online (Sandbox Code Playgroud)
三重标签是由名称空间(以冒号结尾)组成的高级标签,该名称空间标识标签的感兴趣的域、限定标签的键、运算符(eq 表示相等,gt 表示大于,lt 表示小于和 inc用于包含),最后是一个量化标签的值。
在我看来,这是 Linux 上文件标记最一致和最优雅的方法。它已经存在了 10 多年,所以它也是一个成熟的解决方案,没有很快消失的风险。
我也需要标记文件,并决定在没有内置方法的情况下,我将在文件的文件名中实现我的标签。这样,您就可以使用 bash 表达式的全部功能来搜索具有特定标签的文件,不存在 cp 和 mv 等丢失标签的问题,并且标签在 GUI 文件管理器中可见。
例如,您可以决定将 (tag1,tag2...)" 添加到每个文件名的末尾。
编辑:这很适合我,因为我的标签更多地指示三个组中的一个或多个组的文件成员资格。对于更通用的标签应用程序,在文件名末尾使用更简单的语法(使用 bash 等)将类似于“文件名!tag1!tag2”。