แรงบันดาลใจ
"การใช้หมวดหมู่แทนไดเร็กทอรี หรือระบบไฟล์เชิงความหมายสำหรับ" Linux Vitis»
ฉันตัดสินใจสร้างยูทิลิตี้อะนาล็อกของตัวเอง vitis สำหรับ PowerShell Core
ทำไมฉันถึงเริ่มทำเช่นนี้
โอ้โห เร่าร้อน vitis เฉพาะสำหรับ Linux.
ประการที่สอง ฉันต้องการใช้ "ไปป์" ใน PowerShell
เนื่องจากฉันต้องการสร้างยูทิลิตี้ข้ามแพลตฟอร์ม ฉันจึงเลือก .Net Core
ประวัติศาสตร์
ตอนแรกเกิดความวุ่นวาย จากนั้นโฟลเดอร์ก็ปรากฏบนดิสก์
แต่ความวุ่นวายยังคงครอบงำอยู่ และแท็กก็ปรากฏขึ้นรวมถึงแท็กย่อยและคำพ้องความหมายของแท็ก แต่ความวุ่นวายก็เข้าครอบงำพวกเขาเช่นกัน และหมวดหมู่ถูกประดิษฐ์ขึ้น
แนวคิด
ไฟล์ไม่ได้จัดเก็บไว้ในลำดับชั้นของโฟลเดอร์ แต่อยู่ใน "ฮีป" โดยมีหมวดหมู่เฉพาะ ไฟล์หนึ่งสามารถอยู่ในได้หลายประเภท
หากคุณต้องการค้นหาไฟล์จะสะดวกกว่าในการป้อนหมวดหมู่ที่เป็นของไฟล์นั้น วิธีนี้จะจดจำได้ง่ายกว่าโฟลเดอร์ที่จัดเก็บไว้มาก
แต่ระบบไฟล์ดังกล่าวไม่เหมาะสำหรับการจัดเก็บโค้ด แหล่งที่มา ฯลฯ
ออกแบบมาเพื่อจัดเก็บ เช่น ภาพถ่ายครอบครัว เพลง เอกสาร
ใช้
เอาล่ะ เรามาเริ่มด้วยการสาธิตกันดีกว่า
ติดตั้งกราไฟท์:
# 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 ได้ที่ไหน
ที่นี่ บน GitLab ของ Graphile
อนุญาต MITเพื่อให้คุณสามารถใช้เพื่อวัตถุประสงค์ทางการค้าได้
อนาคตของโครงการ
เนื่องจากนี่คือ PowerShell และไม่ใช่เรื่องบ้า คุณจึงสามารถสร้างเชลล์กราฟิกสำหรับ .NET Core ได้
วิธีทำ:
- ติดตั้ง Microsoft.PowerShell.SDK
- ใช้คลาส PowerShell และเรียก Graphile
หากคุณชอบโปรเจ็กต์นี้ ให้คอมมิต merge requestและสร้างการสนทนา
ขอบคุณสำหรับการอ่าน! ใช้มันและสนุก!
ที่มา: will.com
