Inspirerad av
«Kategorier istället för mappar, eller En semantisk filsystem för Linux Vitis»,
beslöt jag mig för att skapa min egen version av verktyget vitis för PowerShell Core.
Varför började jag göra detta
För det första, vitis endast för Linux.
För det andra, jag ville använda «rör» i PowerShell.
Eftersom jag ville skapa ett plattformsoberoende verktyg, valde jag .Net Core.
Bakgrund
Först var det kaos. Sedan dök det upp mappar på disken.
Men kaoset rådde fortfarande. Det kom även taggar samt undermappar och synonymer till taggarna. Men kaoset tog över även dem. Och kategorier introducerades.
Konceptet
Filer lagras inte i en mapphierarki, utan i en «hög», med specifika kategorier. En fil kan tillhöra flera kategorier.
Om man behöver hitta en fil, är det enklare att ange de kategorier den tillhör. Det är mycket enklare att komma ihåg än i vilka mappar den lagras.
Men ett sådant filsystem passar på inga villkor för lagring av kod, källfiler osv.
Det är avsett för att lagra till exempel familjebilder, musik, dokument.
Användning
Nåväl, låt oss börja med demonstration.
Vi installerar Graphile:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1Först initierar vi Graphile i mappen:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.dbSå, vi har allt inställt. Nu kan vi skapa en ny kategori:
PS C:UsersDellGraphileTest> New-Category -Name "music"
musicLåt oss lägga till filer:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
}Till dem som inte förstod vad jag gjorde:
- Jag fick en lista med filer i mappen
Pink Floyd - The Wall - Varje fil omvandlades till en fullständig sökväg till dem
- Jag lade till varje fil i kategorin
music
Nu ska vi kontrollera om vi verkligen har lagt till filer i kategorin:
PS C:UsersDellGraphileTest> List-Graphiles | Format-TableEn lista kommer att skrivas ut i formatet:
CategoriesNames Id Categories Name ExtensionLåt oss lägga till fler kategorier och 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" }Låt oss kontrollera filerna:
List-Graphiles -Categories "alan-parsons" | Format-TableKommandot kommer att lista alla filer som tillhör kategorin alan-parsons.
Fler filer till gud av filsystem!
New-Category -Name "images"
Get-ChildItem "D:Bilder" -File -Recurse | foreach { $_.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}Kontrollerar:
List-Graphiles -Categories "images" | Format-TableAllt fungerar!
Men det här är bara början. Exportera ditt vanliga filsystem till Graphile och få en utmärkt filorganisation.
Var du kan ladda ner Graphile
Här är från GitLab för Graphile.
Licens MIT, så du kan använda den även för kommersiella ändamål.
Projektets framtid
Eftersom det är PowerShell och ingen lek kan vi skapa ett grafiskt gränssnitt för .NET Core.
Så här gör du:
- Installera paketet Microsoft.PowerShell.SDK
- Använd PowerShell-klassen och anropa Graphile.
Om du gillar projektet, gör commits, merge requestoch skapa diskussioner.
Tack för att du läste! Använd och njut!
Källa: habr.com
