受到文章的启发
“类别而不是目录,或Linux Vitis的语义文件系统”,
我决定对PowerShell Core的vitis
实用程序进行自己的模拟。
为什么我开始这样做?
首先, vitis
适用于Linux。
其次,我想在PowerShell中使用“管道”。
由于我想制作一个跨平台的实用程序,因此选择了.Net Core。
背景知识
起初有混乱。 然后,文件夹出现在磁盘上。
但是混乱仍然占据统治地位。 出现标签,以及标签的子标签和同义词。 但是混乱也抓住了他们。 并且发明了类别。
概念图
文件不是存储在文件夹层次结构中,而是存储在具有某些类别的堆中。 单个文件可以属于几个类别。
如果需要查找文件,则输入文件所属的类别更为方便。 与将其存储在哪个文件夹相比,记住起来要容易得多。
但是这样的文件系统绝不适合存储代码,源代码等。
它旨在存储例如家庭照片,音乐,文档。
使用方法
好,让我们开始演示。
安装Graphile:
# install.ps1 PS D:\Source\repos\Graphile> .\install.ps1
首先,在文件夹中初始化Graphile:
# PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell # Graphile PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db
因此,我们都准备就绪。 现在,您可以创建一个新类别:
PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music
添加文件:
PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> }
对于那些不了解我所做的事情的人:
- 在
Pink Floyd - The Wall
文件夹中找到了文件列表Pink Floyd - The Wall
- 每个文件都转换为它们的完整路径
- 将每个文件添加到
music
类别
现在检查我们是否确实将文件添加到了类别:
PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table
列表将以以下格式显示:
CategoriesNames Id Categories Name Extension
添加更多类别和文件:
New-Category -Name "the-wall" New-Category -Name "alan-parsons" List-Graphiles -Categories "music" | foreach { Add-GraphileToCategory -Categories "the-wall" -Files $_.Name } Get-ChildItem "D:\Music\The Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" }
检查文件:
List-Graphiles -Categories "alan-parsons" | Format-Table
该命令将列出属于alan-parsons
所有文件。
更多文件到上帝文件系统!
New-Category -Name "images" Get-ChildItem "D:\" -File -Recurse | foreach { $.FullName } | foreach { Add-FileToCategory -File $_ -Categories "images" }
我们检查:
List-Graphiles -Categories "images" | Format-Table
一切正常!
但这仅仅是开始。 将常规文件系统导出到Graphile并获得良好的文件组织。
在哪里下载Graphile
这是指向 GitLab Graphile的链接 。
MIT
,因此您甚至可以将其用于商业目的。
未来项目
由于这是PowerShell,而不是khukh-mukhra,因此您可以在.NET Core下创建图形外壳。
怎么做:
- 安装Microsoft.PowerShell.SDK
- 使用PowerShell类并调用Graphile。
如果您喜欢该项目,请提交, merge request
并创建讨论。
感谢您的阅读! 使用和享受!