Kategorier istället för kataloger. Ett verktyg för bekväm lagring av filer

Inspirerad av artikeln

«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.ps1

Först initierar vi Graphile i mappen:

# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.db

Så, vi har allt inställt. Nu kan vi skapa en ny kategori:

PS C:UsersDellGraphileTest> New-Category -Name "music"
music

Lå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:

  1. Jag fick en lista med filer i mappen Pink Floyd - The Wall
  2. Varje fil omvandlades till en fullständig sökväg till dem
  3. 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-Table

En lista kommer att skrivas ut i formatet:

CategoriesNames Id Categories Name Extension

Lå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-Table

Kommandot 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-Table

Allt 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 länk 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:

  1. Installera paketet Microsoft.PowerShell.SDK
  2. 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

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster