Inspireret af
«Kategorier i stedet for mapper, eller Et semantisk filsystem for Linux Vitis»,
besluttede jeg at lave min egen analog af værktøjet vitis til PowerShell Core.
Hvorfor jeg begyndte at gøre dette
For det første, vitis kun for Linux.
For det andet, ønsker jeg at bruge «pipes» i PowerShell.
Da jeg ville lave et tværplatformsværktøj, valgte jeg .Net Core.
Background
Først var der kaos. Så dukkede der mapper op på disken.
Men kaos herskede stadig. Og tags, samt sub-tags og synonymer til tags dukkede op. Men kaos greb også dem. Og kategorier blev opfundet.
Koncept
Filer opbevares ikke i en mappestruktur, men i en «bunke» med bestemte kategorier. En fil kan tilhøre flere kategorier.
Hvis du skal finde en fil, er det lettere at indtaste de kategorier, den tilhører. Det er meget lettere at huske, end i hvilke mapper den er gemt.
Men et sådan filsystem er på ingen måde egnet til opbevaring af kode, kildekoder osv.
Det er beregnet til at gemme, for eksempel, familiebilleder, musik, dokumenter.
Brugen af
Nå, lad os begynde demonstrationen.
Lad os installere Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Først initialiserer vi Graphile i mappen:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbSå, nu har vi sat alt op. Nu kan vi oprette en ny kategori:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicLad os tilføje filer:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
>> }Til dem, der ikke forstod, hvad jeg gjorde:
- Jeg fik en liste over filer i mappen
Pink Floyd - The Wall - Hver fil blev konverteret til sin fulde sti
- Tilføjede hver fil til kategorien
music
Lad os nu se, om vi virkelig har tilføjet filer til kategorien:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableDer vil blive vist en liste i formatet:
KategorierNavne ID Kategorier Navn UdvidelseLad os tilføje flere kategorier og filer:
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" }Lad os tjekke filerne:
List-Graphiles -Categories "alan-parsons" | Format-TableKommandoen vil vise alle filer, der tilhører kategorien alan-parsons.
Flere filer til filgudernes ære!
New-Category -Name "images"
Get-ChildItem "D:Billeder" -File -Recurse | foreach { $.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}Vi tjekker:
List-Graphiles -Categories "images" | Format-TableAlt fungerer!
Men det er kun begyndelsen. Eksportér dit almindelige filsystem til Graphile og få en fremragende organisering af filer.
Hvor kan jeg downloade Graphile
Her er fra GitLab Graphile.
Licens MIT, så du kan endda bruge det til kommercielle formål.
Projektets fremtid
Da dette er PowerShell og ikke noget pjatt, kan man lave et grafisk interface i .NET Core.
Sådan gør du:
- Installer Microsoft.PowerShell.SDK-pakken
- Brug PowerShell-klassen og kald Graphile.
Hvis du kan lide projektet, så lav commits, merge requestog skab diskussioner.
Tak for læsningen! Brug det og nyd det!
Kilde: habr.com
