使用符号链接管理和标记文件的脚本

linky-db的Python项目详细描述


链接build_status.svgcoverage.svgavg_coverage.svg

使用符号链接的无数据库文件标记器。在

这使得一个文件可以有多个标记,而不必担心文件夹结构。在

快速入门

如果你喜欢视频here you go。在

<;iframe width=“560”height=“315”sandbox=“allow same origin allow scripts”src=”https://video.ploud.fr/videos/embed/b404bb78-e1e6-4190-8517-ac222d015be4allowframe=“0框架”>;

这至少需要Python3.6和pip。 在对文件进行标记之前,必须先初始化一个目录,以便与linky一起使用。在

1。安装程序包

pip install linky-db

2。配置标记组(类别)

导航到要初始化的目录
可以是你的文件夹,视频,音乐,书籍等

cd my_link_root

写入配置文件
当然,你以后可以修改它。 参见categories.schema.yaml了解其说明和 categories.yaml示例

mkdir .linky
echo"Tags:  default: Untagged  extensible: True  exclusive_default: True  tags:    - Action    - Fantasy    - Romance    - Sci-Fi    - Zombie" > .linky/categories.yaml

3。初始化文件夹

linky init .

将创建一个.base目录,并且该目录中以前的所有内容, 将被移动到基目录中。 它将包含所有数据。 包含.base和所有其他数据的目录称为链接根。在

有关详细信息,请参见Howdocs。在

现在可以开始:

  • 探索命令:linky helplinky help addlinky help ...
  • 标记:linky tag -t Category/Tag file_in_your_root
  • 添加更多文件linky add fileOrDir_outside_your_root
  • 移动文件:linky move old/path/old_name new/path/new_name
    将文件移出标记文件夹受到linky的限制!在

为什么

程序通常使用数据库来保存有关文件的元信息。这些数据库:

  • 经常被存放在人们意想不到的地方
  • 具有自定义架构
  • 与其他数据库不兼容
    e、 g postgres vs mariadb vs sqlite vs nosql vs etc

所有这些都使得从一个程序到另一个程序的迁移变得困难。 当然,这个程序也会受到这个特殊问题(迁移)的影响 可以手动维护下面提到的文件夹结构和链接。在

怎么回事

考虑这个现有目录。以#为前缀的行是关于它们下面的项的注释!在

^{pr2}$

linky的工作原理是将所有文件保存在一个名为.base的公共隐藏文件夹中。 文件夹树中的所有同级将其文件链接到基文件夹。 因此,可以将一个文件分为多个类别,例如 观看、分级、大小、演员等

Docs

有关术语和内部工作原理的更多信息。在

发展

HACKING.md

备选方案

以下是实现非常相似功能的semantic filesystems。 大多数使用单独的数据库文件,这就是为什么我不使用它们,但是它们 可能对你很有用!在

  • dhtfs-基于标记的文件系统,提供动态目录层次结构 基于与文件关联的标记。在
  • Tagsistant-Linux的基于标记的文件系统 它将目录转换为标记并搜索文件。在
  • TMSU-TMSU是一个标记文件的工具。 它为应用标记提供了一个简单的命令行工具 以及一个虚拟文件系统,这样您就可以获得基于标记的 从任何其他程序中查看您的文件。在
  • xtagfs-macosx的基于标记的文件系统

谢谢

首先也是最重要的是所有使这成为可能的开源开发人员。在

  • 皮皮的包裹像克里夫,亚马尔和其他
  • pip用于包托管
  • gitlab用于代码托管和CI
  • Pycharm IDE的喷气式飞机
  • 图标编辑器的Inkscape
  • 我的偶像搭档(一个链接是66%的一英尺。来源:wikipedia

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java广播接收器未检测到按键事件   java不为特定列更改创建修订   java采用了更实用的方法   java桌面窗格HTML呈现   java处理internet连接丢失   java在调整JFrame的大小时,如何防止JTable的列调整大小?   如何用Java中的“Scanner.hasNext”完成程序   具有模块名称的java停止IntelliJ项目工具窗口?   执行已编译的Rails-Warbler JAR文件时发生java加载错误   java Spring数据redis存储库不支持集合查询?   每个客户端的java队列请求   获取Java中的JSON嵌套数组元素   java GWT,Vaadin ConcurrentModificationException   firebase存储中的java在保存照片之前,我需要发送两次照片   JavaSpringEleaf如何在容器外使用变量