Inspiriert vom Artikel
"Kategorien statt Verzeichnisse oder das semantische Dateisystem für Linux Vitis",
Ich habe beschlossen, mein eigenes Analogon zum vitis
Dienstprogramm für PowerShell Core zu erstellen.
Warum habe ich damit angefangen?
Erstens ist vitis
für Linux.
Zweitens möchte ich die "Pipes" in PowerShell verwenden.
Da ich ein plattformübergreifendes Dienstprogramm erstellen wollte, entschied ich mich für .Net Core.
Hintergrund
Zuerst herrschte Chaos. Dann erschienen Ordner auf der Festplatte.
Aber es herrschte immer noch Chaos. Und es erschienen Tags sowie Untertags und Synonyme für Tags. Aber das Chaos hat sie auch gefangen genommen. Und Kategorien wurden erfunden.
Konzept
Dateien werden nicht in einer Ordnerhierarchie, sondern in einem Heap mit bestimmten Kategorien gespeichert. Eine einzelne Datei kann mehreren Kategorien angehören.
Wenn Sie eine Datei suchen müssen, ist es bequemer, die Kategorien einzugeben, zu denen sie gehört. Es ist viel einfacher, sich zu erinnern, als in welchen Ordnern es gespeichert ist.
Ein solches Dateisystem ist jedoch keineswegs zum Speichern von Code, Quellcodes usw. geeignet.
Es dient zum Speichern von beispielsweise Familienfotos, Musik und Dokumenten.
Verwenden Sie
Beginnen wir mit der Demonstration.
Installieren Sie Graphile:
# install.ps1 PS D:\Source\repos\Graphile> .\install.ps1
Initialisieren Sie zunächst Graphile im Ordner:
# PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell # Graphile PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db
Also sind wir alle eingerichtet. Jetzt können Sie eine neue Kategorie erstellen:
PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music
Fügen Sie die Dateien hinzu:
PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> }
Für diejenigen, die nicht verstanden haben, was ich getan habe:
- Ich habe eine Liste der Dateien im Ordner
Pink Floyd - The Wall
- Jede Datei wurde in einen vollständigen Pfad zu ihnen konvertiert
- Jede Datei wurde zur Musikkategorie hinzugefügt
Überprüfen Sie nun, ob wir die Dateien wirklich zur Kategorie hinzugefügt haben:
PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table
Eine Liste wird im folgenden Format angezeigt:
CategoriesNames Id Categories Name Extension
Weitere Kategorien und Dateien hinzufügen:
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" }
Überprüfen Sie die Dateien:
List-Graphiles -Categories "alan-parsons" | Format-Table
Der Befehl listet alle Dateien auf, die zur alan-parsons
.
Weitere Dateien zu God-Dateisystemen!
New-Category -Name "images" Get-ChildItem "D:\" -File -Recurse | foreach { $.FullName } | foreach { Add-FileToCategory -File $_ -Categories "images" }
Wir prüfen:
List-Graphiles -Categories "images" | Format-Table
Alles arbeitet!
Dies ist jedoch nur der Anfang. Exportieren Sie Ihr reguläres Dateisystem nach Graphile und erhalten Sie eine hervorragende Dateiorganisation.
Wo kann man Graphile herunterladen?
Hier ist ein Link zum GitLab Graphile.
MIT
, sodass Sie sie auch für kommerzielle Zwecke verwenden können.
Zukünftiges Projekt
Da dies PowerShell und nicht Khukh-Mukhra ist, können Sie unter .NET Core eine grafische Shell erstellen.
Wie kann man das machen:
- Installieren Sie Microsoft.PowerShell.SDK
- Verwenden Sie die PowerShell-Klasse und rufen Sie Graphile auf.
Wenn Ihnen das Projekt gefallen hat, machen Sie Commits, führen Sie merge request
zusammen und erstellen Sie Diskussionen.
Danke fürs Lesen! Nutzen und genießen!