Inspirado en el articulo
"Categorías en lugar de directorios, o el sistema de archivos semántico para Linux Vitis",
Decidí hacer mi propio análogo de la utilidad vitis
para PowerShell Core.
¿Por qué comencé a hacer esto?
Primero, vitis
solo para Linux.
En segundo lugar, quiero usar las "tuberías" en PowerShell.
Como quería hacer una utilidad multiplataforma, elegí .Net Core.
Antecedentes
Al principio hubo caos. Entonces las carpetas aparecieron en el disco.
Pero el caos aún reinaba. Y aparecieron etiquetas, así como subetiquetas y sinónimos de etiquetas. Pero el caos también los capturó. Y se inventaron las categorías.
Concepto
Los archivos no se almacenan en una jerarquía de carpetas, sino en un montón, con ciertas categorías. Un solo archivo puede pertenecer a varias categorías.
Si necesita encontrar un archivo, es más conveniente ingresar las categorías a las que pertenece. Es mucho más fácil de recordar que en qué carpetas está almacenado.
Pero dicho sistema de archivos no es de ninguna manera adecuado para almacenar código, códigos fuente, etc.
Está diseñado para almacenar, por ejemplo, fotos familiares, música, documentos.
Uso
Bueno, comencemos la demostración.
Instalar Graphile:
# install.ps1 PS D:\Source\repos\Graphile> .\install.ps1
Primero, inicialice Graphile en la carpeta:
# PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell # Graphile PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db
Entonces, estamos todos preparados. Ahora puedes crear una nueva categoría:
PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music
Agrega los archivos:
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 aquellos que no entendieron lo que hice:
- Tengo una lista de archivos en la carpeta de
Pink Floyd - The Wall
- Cada archivo convertido en una ruta completa a ellos
- Se agregó cada archivo a la categoría de
music
Ahora verifique si realmente agregamos los archivos a la categoría:
PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table
Se mostrará una lista en el formato:
CategoriesNames Id Categories Name Extension
Agregue más categorías y archivos:
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" }
Revisa los archivos:
List-Graphiles -Categories "alan-parsons" | Format-Table
El comando enumerará todos los archivos que pertenecen a la alan-parsons
.
Más archivos a los sistemas de archivos de Dios!
New-Category -Name "images" Get-ChildItem "D:\" -File -Recurse | foreach { $.FullName } | foreach { Add-FileToCategory -File $_ -Categories "images" }
Comprobamos:
List-Graphiles -Categories "images" | Format-Table
¡Todo funciona!
Pero esto es solo el comienzo. Exporte su sistema de archivos regular a Graphile y obtenga una excelente organización de archivos.
Dónde descargar Graphile
Aquí hay un enlace al GitLab Graphile.
MIT
, para que pueda usarla incluso con fines comerciales.
Proyecto futuro
Como se trata de PowerShell, no de khukh-mukhra, puede crear un shell gráfico en .NET Core.
Cómo hacerlo:
- Instalar Microsoft.PowerShell.SDK
- Use la clase PowerShell y llame a Graphile.
Si le gustó el proyecto, haga commits, merge request
y cree discusiones.
Gracias por leer! ¡Usa y disfruta!