Categorias em vez de diretórios. Uma ferramenta para armazenamento conveniente de arquivos

Inspirado no artigo


"Categorias em vez de diretórios ou o sistema de arquivos semântico para Linux Vitis",

Decidi fazer meu próprio análogo do utilitário vitis para o PowerShell Core.


Por que eu comecei a fazer isso?


Primeiro, o vitis apenas para Linux.
Em segundo lugar, quero usar os "pipes" no PowerShell.


Como eu queria criar um utilitário de plataforma cruzada, escolhi o .Net Core.


Antecedentes


A princípio, houve um caos. Em seguida, as pastas apareceram no disco.
Mas o caos ainda reinou. E apareceram tags, além de subtags e sinônimos para tags. Mas o caos também os capturou. E categorias foram inventadas.


Conceito


Os arquivos não são armazenados em uma hierarquia de pastas, mas em um heap, com determinadas categorias. Um único arquivo pode pertencer a várias categorias.


Se você precisar encontrar um arquivo, é mais conveniente inserir as categorias às quais ele pertence. É muito mais fácil lembrar do que em quais pastas ele está armazenado.


Mas esse sistema de arquivos não é de forma alguma adequado para armazenar código, códigos-fonte etc.
Ele foi projetado para armazenar, por exemplo, fotos de família, músicas e documentos.


Use


Bem, vamos começar a demonstração.


Instale o Graphile:


 # install.ps1       PS D:\Source\repos\Graphile> .\install.ps1 

Primeiro, inicialize o Graphile na pasta:


 #    PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell #  Graphile   PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db 

Então, estamos todos prontos. Agora você pode criar uma nova categoria:


 PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music 

Adicione os arquivos:


 PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> } 

Para quem não entendeu o que eu fiz:


  1. Tem uma lista de arquivos na pasta Pink Floyd - The Wall
  2. Cada arquivo convertido em um caminho completo para eles
  3. Adicionado cada arquivo à categoria de music

Agora verifique se realmente adicionamos os arquivos à categoria:


 PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table 

Uma lista será exibida no formato:


 CategoriesNames Id Categories Name Extension 

Adicione mais categorias e arquivos:


 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" } 

Verifique os arquivos:


 List-Graphiles -Categories "alan-parsons" | Format-Table 

O comando listará todos os arquivos que pertencem à categoria alan-parsons .


Mais arquivos para os sistemas de arquivos god!


 New-Category -Name "images" Get-ChildItem "D:\" -File -Recurse | foreach { $.FullName } | foreach { Add-FileToCategory -File $_ -Categories "images" } 

Verificamos:


 List-Graphiles -Categories "images" | Format-Table 

Tudo funciona!


Mas isso é apenas o começo. Exporte seu sistema de arquivos regular para o Graphile e obtenha uma ótima organização de arquivos.


Onde baixar o Graphile


Aqui está um link para o GitLab Graphile.


MIT , para que você possa usá-la mesmo para fins comerciais.


Projeto futuro


Como esse é o PowerShell, não o khukh-mukhra, você pode criar um shell gráfico no .NET Core.


Como fazer:


  1. Instale Microsoft.PowerShell.SDK
  2. Use a classe PowerShell e chame Graphile.

Se você gostou do projeto, faça confirmações, merge request e crie discussões.


Obrigado pela leitura! Use e divirta-se!

Source: https://habr.com/ru/post/pt467701/


All Articles