Inspiré par l' article
"Catégories au lieu de répertoires, ou le système de fichiers sémantique pour Linux Vitis",
J'ai décidé de créer mon propre analogue de l'utilitaire vitis
pour PowerShell Core.
Pourquoi ai-je commencé à faire ça?
Tout d'abord, vitis
uniquement pour Linux.
Deuxièmement, je veux utiliser les "tuyaux" dans PowerShell.
Comme je voulais créer un utilitaire multiplateforme, j'ai choisi .Net Core.
Contexte
Au début, il y avait le chaos. Ensuite, des dossiers sont apparus sur le disque.
Mais le chaos régnait toujours. Et des balises sont apparues, ainsi que des sous-balises et des synonymes de balises. Mais le chaos les a également capturés. Et les catégories ont été inventées.
Concept
Les fichiers ne sont pas stockés dans une hiérarchie de dossiers, mais dans un segment de mémoire, avec certaines catégories. Un même fichier peut appartenir à plusieurs catégories.
Si vous avez besoin de trouver un fichier, il est plus pratique d'entrer les catégories auxquelles il appartient. Il est beaucoup plus facile de se souvenir que dans quels dossiers il est stocké.
Mais un tel système de fichiers n'est en aucun cas adapté au stockage de code, de codes sources, etc.
Il est conçu pour stocker, par exemple, des photos de famille, de la musique, des documents.
Utiliser
Eh bien, commençons la démonstration.
Installez Graphile:
# install.ps1 PS D:\Source\repos\Graphile> .\install.ps1
Tout d'abord, initialisez Graphile dans le dossier:
# PS C:\Users\Dell\GraphileTest> Import-Module GraphilePowerShell # Graphile PS C:\Users\Dell\GraphileTest> Init-Graphile C:\Users\Dell\GraphileTest\graphile.db
Donc, nous sommes tous installés. Vous pouvez maintenant créer une nouvelle catégorie:
PS C:\Users\Dell\GraphileTest> New-Category -Name "music" music
Ajoutez les fichiers:
PS C:\Users\Dell\GraphileTest> Get-ChildItem "D:\Music\Pink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach { >> Add-FileToCategory -File $_ -Categories "music" >> }
À ceux qui n'ont pas compris ce que j'ai fait:
- Vous avez une liste de fichiers dans le dossier
Pink Floyd - The Wall
- Chaque fichier converti en un chemin complet vers eux
- Ajout de chaque fichier à la catégorie
music
Vérifiez maintenant si nous avons vraiment ajouté les fichiers à la catégorie:
PS C:\Users\Dell\GraphileTest> List-Graphiles | Format-Table
Une liste sera affichée au format:
CategoriesNames Id Categories Name Extension
Ajoutez plus de catégories et de fichiers:
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" }
Vérifiez les fichiers:
List-Graphiles -Categories "alan-parsons" | Format-Table
La commande répertorie tous les fichiers appartenant à la alan-parsons
.
Plus de fichiers vers les systèmes de fichiers god!
New-Category -Name "images" Get-ChildItem "D:\" -File -Recurse | foreach { $.FullName } | foreach { Add-FileToCategory -File $_ -Categories "images" }
Nous vérifions:
List-Graphiles -Categories "images" | Format-Table
Tout fonctionne!
Mais ce n'est que le début. Exportez votre système de fichiers standard vers Graphile et obtenez une excellente organisation des fichiers.
Où télécharger Graphile
Voici un lien vers le GitLab Graphile.
MIT
, vous pouvez donc l'utiliser même à des fins commerciales.
Projet futur
Comme il s'agit de PowerShell, pas de khukh-mukhra, vous pouvez créer un shell graphique sous .NET Core.
Comment faire:
- Installez Microsoft.PowerShell.SDK
- Utilisez la classe PowerShell et appelez Graphile.
Si vous avez aimé le projet, faites des commits, merge request
et créez des discussions.
Merci d'avoir lu! Utilisez et profitez!