الهام گرفته
"دسته ها به جای دایرکتوری ها، یا سیستم فایل معنایی برای لینوکس Vitis"،
تصمیم گرفتم آنالوگ خود را از این ابزار بسازم vitis
برای PowerShell Core.
چرا این کار را شروع کردم
اولا ، vitis
فقط برای لینوکس
در مرحله دوم، من می خواهم از "لوله ها" در PowerShell استفاده کنم.
از آنجایی که می خواستم یک ابزار چند پلتفرمی بسازم، Net Core را انتخاب کردم.
ماقبل تاریخ
ابتدا هرج و مرج بود. سپس پوشه ها روی دیسک ظاهر شدند.
اما هرج و مرج همچنان حاکم بود. و برچسب ها و همچنین زیربرچسب ها و مترادف های برچسب ظاهر شدند. اما هرج و مرج آنها را نیز گرفت. و دسته بندی ها اختراع شد.
مفهوم
فایل ها در یک سلسله مراتب پوشه ذخیره نمی شوند، بلکه در یک "هیپ" با دسته بندی های خاص ذخیره می شوند. یک فایل می تواند به چند دسته تعلق داشته باشد.
اگر نیاز به یافتن فایلی دارید، وارد کردن دسته هایی که به آن تعلق دارد راحت تر است. به خاطر سپردن آن بسیار ساده تر از پوشه هایی است که در آن ذخیره می شود.
اما چنین سیستم فایلی به هیچ وجه برای ذخیره کد، منابع و غیره مناسب نیست.
این برای ذخیره، به عنوان مثال، عکس های خانوادگی، موسیقی، اسناد طراحی شده است.
استفاده
خوب، بیایید با تظاهرات شروع کنیم.
Graphile را نصب کنید:
# install.ps1 находится в корневой папке с кодом
PS D:SourcereposGraphile> .install.ps1
ابتدا Graphile را در پوشه مقداردهی اولیه می کنیم:
# Импортируем установленный модуль
PS C:UsersDellGraphileTest> Import-Module GraphilePowerShell
# Инициализируем Graphile в папке
PS C:UsersDellGraphileTest> Init-Graphile
C:UsersDellGraphileTestgraphile.db
بنابراین ما همه چیز را آماده کرده ایم. اکنون می توانید یک دسته بندی جدید ایجاد کنید:
PS C:UsersDellGraphileTest> New-Category -Name "music"
music
بیایید فایل ها را اضافه کنیم:
PS C:UsersDellGraphileTest> Get-ChildItem "D:MusicPink Floyd - The Wall" -Recurse -Filter "*.mp3" | foreach { $_.FullName } | foreach {
>> Add-FileToCategory -File $_ -Categories "music"
>> }
برای کسانی که متوجه نمی شوند من چه کار کردم:
- لیستی از فایل های موجود در یک پوشه را دریافت کرد
Pink Floyd - The Wall
- هر فایل به مسیر کامل خود تبدیل شد
- هر فایل به دسته اضافه شد
music
حالا بیایید بررسی کنیم که آیا واقعاً فایلها را به دسته اضافه کردهایم یا خیر:
PS C:UsersDellGraphileTest> List-Graphiles | Format-Table
یک لیست در قالب نمایش داده می شود:
CategoriesNames Id Categories Name Extension
بیایید دسته ها و فایل های بیشتری اضافه کنیم:
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" }
بیایید فایل ها را بررسی کنیم:
List-Graphiles -Categories "alan-parsons" | Format-Table
این دستور تمام فایل هایی را که متعلق به دسته هستند فهرست می کند alan-parsons
.
فایل های بیشتر برای خدای فایل سیستم ها!
New-Category -Name "images"
Get-ChildItem "D:Изображения" -File -Recurse | foreach { $.FullName } | foreach {
Add-FileToCategory -File $_ -Categories "images"
}
ما بررسی می کنیم:
List-Graphiles -Categories "images" | Format-Table
همه کار می کند
اما این تازه شروع کار است. فایل سیستم معمولی خود را به Graphile صادر کنید و سازماندهی فایل عالی داشته باشید.
Graphile را از کجا دانلود کنیم
در اینجا این است
مجوز MIT
، بنابراین حتی می توانید از آن برای مقاصد تجاری استفاده کنید.
آینده پروژه
از آنجایی که این PowerShell است و چیزهای دیوانه کننده نیست، می توانید یک پوسته گرافیکی برای NET Core بسازید.
چگونه این کار را انجام دهیم:
- Microsoft.PowerShell.SDK را نصب کنید
- از کلاس PowerShell استفاده کنید و Graphile را فراخوانی کنید.
اگر پروژه را دوست دارید، متعهد شوید، merge request
's و ایجاد بحث.
با تشکر برای خواندن! از آن استفاده کنید و لذت ببرید!
منبع: www.habr.com