Inspirați de
«Categorii în loc de directoare, sau Un sistem semantic de fișiere pentru Linux Vitis»
am decis să fac un analog al utilitarului vitis pentru PowerShell Core.
De ce am început să fac asta
În primul rând, vitis doar pentru Linux.
În al doilea rând, vreau să folosesc «tube» în PowerShell.
Pentru că am vrut să fac un utilitar multiplatformă, am ales .Net Core.
Povestea
Mai întâi a fost haos. Apoi au apărut folderele pe disc.
Dar haosul a domnit încă. Și au apărut etichete, precum și subetichete și sinonime pentru etichete. Dar haosul le-a cuprins și pe ele. Și au fost inventate categorii.
Conceptul
Fișierele sunt păstrate nu într-o ierarhie de foldere, ci într-un «morman», cu anumite categorii. Un fișier poate aparține mai multor categorii.
Dacă trebuie să găsești un fișier, este mai convenabil să introduci categoriile de care aparține. Este mult mai ușor de memorat decât în ce foldere este păstrat.
Dar un astfel de sistem de fișiere nu se potrivește în niciun caz pentru păstrarea codului, a surselor etc.
Este destinat pentru stocarea, de exemplu, a fotografiilor de familie, muzicii, documentelor.
Utilizare
Ei bine, să începem demonstrația.
Să instalăm Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Mai întâi, inițializăm Graphile în folder:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbAșadar, am totul configurat. Acum putem crea o nouă categorie:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicSă adăugăm fișiere:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
>> }Pentru cei care nu au înțeles ce am făcut:
- Am obținut o listă cu fișiere în folderul
Pink Floyd - The Wall - Fiecare fișier a fost transformat în calea completă către ele
- Am adăugat fiecare fișier în categorie
music
Acum să verificăm dacă am adăugat cu adevărat fișierele în categorie:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableSe va afișa o listă în format:
CategoriesNames Id Categories Name ExtensionSă adăugăm mai multe categorii și fișiere:
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:MusicThe Alan Parsons Project - Turn of a Friendly Card" -File -Recurse | foreach { $_.FullName } | foreach { Add-FileToCategory -File $_ -Categories "music", "alan-parsons" }Să verificăm fișierele:
List-Graphiles -Categories "alan-parsons" | Format-TableComanda va afișa toate fișierele care aparțin categoriei alan-parsons.
Mai multe fișiere pentru dumneavoastră, divinitatea sistemelor de fișiere!
New-Category -Name "images"
Get-ChildItem "D:Imagini" -File -Recurse | foreach { $_.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}Verificăm:
List-Graphiles -Categories "images" | Format-TableTotul funcționează!
Dar acesta este doar începutul. Exportați sistemul dumneavoastră de fișiere obișnuit în Graphile și obțineți o organizare excelentă a fișierelor.
De unde să descărcați Graphile
Iată de pe GitLab Graphile.
Licență MIT, așa că o puteți folosi chiar și în scopuri comerciale.
Viitorul proiectului
Deoarece este PowerShell și nu o glumă, puteți crea o interfață grafică pe .NET Core.
Cum să faceți asta:
- Instalați pachetul Microsoft.PowerShell.SDK
- Folositi clasa PowerShell și apelați Graphile.
Dacă v-a plăcut proiectul, faceți comit-uri, cerere de îmbinareși creați discuții.
Vă mulțumim pentru lectură! Folosiți și bucurați-vă!
Sursa: habr.com
