File និង File System

មាតិកា

  1. តើ File ជាអ្វី?
  2. File System
  3. Folder និងមែកធាង
  4. Path៖ អាសយដ្ឋានរបស់ File
  5. File Extension
  6. Hidden File
  7. Permission
  8. ការលុប មិនមែនតែងតែជាការលុបទេ
  9. សាកល្បងដោយខ្លួនឯង

1. តើ File ជាអ្វី?

Storage នៅកម្រិតទាបបំផុត គឺគ្រាន់តែជាលំដាប់ byte ដ៏ធំសម្បើមមួយ — រាប់រយពាន់លាន byte នៅលើ SSD ធម្មតាមួយ។ គ្មាននរណាអាចធ្វើការជាមួយវាដោយផ្ទាល់បានទេ។ «ដាក់អត្ថបទរបស់ខ្ញុំនៅ byte ទី 83,402,112» មិនមែនជាវិធីគិតដែលមានប្រយោជន៍ទេ។

File គឺជាដំណោះស្រាយ៖ ដុំ byte ដែលមានឈ្មោះ។ essay.docx, photo.jpg និង app.js សុទ្ធតែជាលំដាប់ byte ដែលមានឈ្មោះភ្ជាប់ជាមួយ បូកនឹងព័ត៌មានបន្ថែមមួយចំនួនអំពីពួកវា៖

  • ទំហំ — ចំនួន byte ដែលវាមាន
  • Timestamp — ពេលដែលវាត្រូវបានបង្កើត និងកែប្រែចុងក្រោយ
  • ម្ចាស់ និង permission — អ្នកណាត្រូវបានអនុញ្ញាតឲ្យអាន ឬកែប្រែវា

ដូចដែលអ្នកបានឃើញក្នុងជំពូកទី 2 byte នៅខាងក្នុងអាចមានន័យអ្វីក៏បាន — អក្សរ pixel សំឡេង ឬ machine code។ File ខ្លួនវាផ្ទាល់មិនខ្វល់ទេ។

2. File System

ត្រូវតែមានអ្វីមួយតាមដានថា byte ណាខ្លះនៅលើ disk ជារបស់ file ណា file នីមួយៗមានឈ្មោះអ្វី និងផ្នែកណាខ្លះនៃ disk ដែលនៅទំនេរ។ ការងារនោះជាកាតព្វកិច្ចរបស់ file system ដែលត្រូវបានគ្រប់គ្រងដោយប្រព័ន្ធប្រតិបត្តិការ។

អ្នកអាចគិតថាវាជាបញ្ជីកាតាឡុករបស់បណ្ណាល័យសម្រាប់ disk របស់អ្នក៖ វាមិនមានសៀវភៅខ្លួនឯងទេ ប៉ុន្តែវាប្រាប់អ្នកយ៉ាងច្បាស់ថាសៀវភៅនីមួយៗនៅលើធ្នើណា។

ប្រព័ន្ធប្រតិបត្តិការផ្សេងៗគ្នាប្រើ file system ផ្សេងៗគ្នា៖

File systemប្រើដោយ
NTFSWindows
APFSmacOS និង iOS
ext4ប្រព័ន្ធ Linux ភាគច្រើន
FAT32 / exFATUSB drive និង SD card ព្រោះគ្រប់ OS អាចអានវាបាន

នេះហើយជាមូលហេតុដែល USB drive ដែលត្រូវបាន format លើ Mac ពេលខ្លះមិនអាចសរសេរលើ Windows បាន ហើយហេតុអ្វីការ «format» drive មួយលុបវាចោល — ការ format មានន័យថាការបង្កើត file system ថ្មីទទេមួយនៅលើវា។

3. Folder និងមែកធាង

Folder (ហៅផងដែរថា directory) គឺជាប្រអប់មួយដែលផ្ទុក file និង folder ផ្សេងទៀត។ ដោយសារ folder អាចផ្ទុក folder បាន file system ទាំងមូលបង្កើតបានជា មែកធាង (tree)៖

/
├── Users
│   └── dara
│       ├── Documents
│       │   └── essay.docx
│       ├── Pictures
│       │   └── angkor.jpg
│       └── projects
│           └── my-app
│               ├── package.json
│               └── src
│                   └── index.js
└── Applications

នៅកំពូលបំផុតគឺ root។ លើ macOS និង Linux root ត្រូវបានសរសេរជា /។ លើ Windows drive នីមួយៗមាន root ផ្ទាល់ខ្លួន ដូចជា C:\។

4. Path៖ អាសយដ្ឋានរបស់ File

Path គឺជាអាសយដ្ឋានរបស់ file មួយ — បញ្ជី folder ដែលអ្នកឆ្លងកាត់ដើម្បីទៅដល់វា ចាប់ពី root ចុះមក។

លើ macOS និង Linux folder ត្រូវបានបំបែកដោយសញ្ញា slash (/)៖

/Users/dara/Pictures/angkor.jpg

លើ Windows ដោយសញ្ញា backslash (\) ដោយចាប់ផ្តើមពីអក្សរ drive៖

C:\Users\dara\Pictures\angkor.jpg

មាន path ពីរប្រភេទ៖

  • Absolute path ចាប់ផ្តើមពី root ហើយដំណើរការពីគ្រប់ទីកន្លែង — ដូចជាអាសយដ្ឋានប្រៃសណីយ៍ពេញលេញ។ /Users/dara/projects/my-app/src/index.js
  • Relative path ចាប់ផ្តើមពីកន្លែងដែលអ្នកកំពុងនៅ — ដូចជាការនិយាយថា «ពីរខ្ទះទៀត»។ បើអ្នកកំពុងនៅខាងក្នុង my-app រួចហើយ file ដដែលនោះគឺគ្រាន់តែ src/index.js។

ឈ្មោះពិសេសពីរលេចឡើងក្នុង relative path ជានិច្ច៖

  • . មានន័យថា «folder បច្ចុប្បន្ន»
  • .. មានន័យថា «folder ខាងលើនេះ» (parent)

ដូច្នេះពីខាងក្នុង my-app/src path ../package.json មានន័យថា «ឡើងមួយកម្រិត បន្ទាប់មកបើក package.json»។ អ្នកនឹងឃើញ path ដូចជា ./components/Button និង ../utils នៅគ្រប់ទីកន្លែងក្នុងកូដពិត ហើយអ្នកនឹងប្រើពួកវារាល់ថ្ងៃនៅក្នុង មូលដ្ឋានគ្រឹះ Command Line។

5. File Extension

ផ្នែកនៃឈ្មោះបន្ទាប់ពីចំណុចចុងក្រោយ — .jpg, .pdf, .js — គឺជា file extension។ វាជាតម្រុយសម្រាប់មនុស្ស និងប្រព័ន្ធប្រតិបត្តិការ អំពីប្រភេទទិន្នន័យដែលនៅខាងក្នុង ដើម្បីឲ្យ OS ដឹងថាកម្មវិធីណាគួរបើកវា។

នេះជារឿងសំខាន់៖ extension គ្រាន់តែជាផ្នែកមួយនៃឈ្មោះប៉ុណ្ណោះ។ ការប្តូរឈ្មោះ photo.jpg ទៅជា photo.txt មិនផ្លាស់ប្តូរ byte តែមួយនៅខាងក្នុង file ទេ — វានៅតែជារូបភាព JPEG។ វាគ្រាន់តែធ្វើឲ្យ OS ច្រឡំ ហើយបើកវាដោយ text editor ដែលនឹងបង្ហាញតួអក្សររញ៉េរញ៉ៃ។

នេះក៏ជាល្បិចបុរាណមួយដែល malware ប្រើផងដែរ៖ file ឈ្មោះ invoice.pdf.exe អាចបង្ហាញជា invoice.pdf បើប្រព័ន្ធលាក់ extension ដែលគេស្គាល់ ប៉ុន្តែតាមពិតវាជាកម្មវិធី។ ការបើក «show file extensions» គឺជាទម្លាប់សុវត្ថិភាពតូចមួយដែលគួរធ្វើ។

Extension មួយចំនួនដែលអ្នកនឹងឃើញញឹកញាប់ក្នុងនាមជាអ្នកអភិវឌ្ឍន៍៖

Extensionវាជាអ្វី
.txt, .mdអក្សរធម្មតា, Markdown
.js, .ts, .py, .goSource code
.json, .yaml, .envការកំណត់ (configuration) និងទិន្នន័យ
.html, .cssទំព័រ web និង style
.exe, .appកម្មវិធី (Windows, macOS)
.zip, .tar.gzArchive ដែលបានបង្រួម

6. Hidden File

File មួយចំនួនត្រូវបាន លាក់ (hidden) តាមលំនាំដើម ដើម្បីកុំឲ្យអ្នកលុបវាដោយចៃដន្យ។ លើ macOS និង Linux file ណាដែលឈ្មោះចាប់ផ្តើមដោយចំណុច គឺត្រូវបានលាក់ — ហេតុនេះហើយបានជាពួកវាត្រូវបានហៅជាញឹកញាប់ថា dotfile។

អ្នកនឹងជួបវាច្រើនក្នុង project ពិតៗ៖

  • .git/ — folder ដែល Git រក្សាទុកប្រវត្តិរបស់ project អ្នក
  • .env — environment variable ដែលជាញឹកញាប់មានព័ត៌មានសម្ងាត់
  • .gitignore — បញ្ជី file ដែល Git គួរមិនអើពើ

ដើម្បីបង្ហាញ hidden file៖

  • macOS Finder៖ ចុច Cmd + Shift + .
  • Windows File Explorer៖ View → Show → Hidden items
  • Linux file manager៖ ជាធម្មតា Ctrl + H

7. Permission

លើកុំព្យូទ័រដែលមានអ្នកប្រើប្រាស់ច្រើននាក់ — ឬ server ដែលដំណើរការ service ជាច្រើន — មិនមែនគ្រប់គ្នាគួរអាចអាន ឬកែប្រែគ្រប់ file នោះទេ។ File system រក្សាទុក permission សម្រាប់ file នីមួយៗ។

លើ macOS និង Linux គ្រប់ file មាន ម្ចាស់ (owner) មួយ ក្រុម (group) មួយ និង permission មូលដ្ឋានបីសម្រាប់នីមួយៗ៖

  • r — អាន (read) file
  • w — សរសេរ (write) (កែប្រែ) file
  • x — ដំណើរការ (execute) វា (រត់វាជាកម្មវិធី) ឬសម្រាប់ folder គឺចូលទៅក្នុងវា

បើអ្នកធ្លាប់ឃើញ error Permission denied នោះ OS កំពុងអនុវត្តច្បាប់ទាំងនេះ។ វាក៏ជាមូលហេតុដែលការដំឡើង software ខ្លះសុំពាក្យសម្ងាត់អ្នកគ្រប់គ្រង (administrator)៖ folder របស់ប្រព័ន្ធជាកម្មសិទ្ធិរបស់អ្នកគ្រប់គ្រង (root លើ Linux និង macOS) មិនមែនរបស់អ្នកប្រើប្រាស់ធម្មតារបស់អ្នកទេ។

Windows ប្រើប្រព័ន្ធលម្អិតជាងនេះ ហៅថា access control list ប៉ុន្តែគំនិតគឺដូចគ្នា៖ OS ពិនិត្យថាអ្នកជានរណា មុនពេលអនុញ្ញាតឲ្យអ្នកប៉ះ file មួយ។ យើងនឹងប្រើ permission ជាក់ស្តែងនៅក្នុង មូលដ្ឋានគ្រឹះ Command Line និង ពង្រឹងសុវត្ថិភាព Linux Server។

8. ការលុប មិនមែនតែងតែជាការលុបទេ

នៅពេលអ្នកលុប file មួយ (ហើយសម្អាតធុងសំរាម) file system ជាធម្មតាគ្រាន់តែ ដកធាតុចេញពីបញ្ជីកាតាឡុក ហើយសម្គាល់កន្លែងនោះថាទំនេរ។ Byte ពិតៗជាញឹកញាប់នៅតែនៅលើ disk រហូតដល់មានអ្វីថ្មីសរសេរជាន់ពីលើវា។

នោះហើយជាមូលហេតុដែលឧបករណ៍ «undelete» ពេលខ្លះអាចសង្គ្រោះ file បាន ហើយហេតុអ្វីអ្នកគួរលុប drive ឲ្យបានសុវត្ថិភាព មុនពេលលក់កុំព្យូទ័រ។ លើ SSD សម័យថ្មី ស្ថានភាពកាន់តែស្មុគស្មាញ — drive ជាញឹកញាប់សម្អាតកន្លែងទំនេរដោយខ្លួនឯងនៅផ្ទៃខាងក្រោយ — ប៉ុន្តែមេរៀននៅតែដដែល៖ ការលុប file មានន័យថា file system ភ្លេចវា មិនមែនមានន័យថាទិន្នន័យបាត់ជាចាំបាច់នោះទេ។

9. សាកល្បងដោយខ្លួនឯង

  1. បើក file manager របស់អ្នក ហើយរក home folder របស់អ្នក (C:\Users\<you> លើ Windows, /Users/<you> លើ macOS, /home/<you> លើ Linux)។
  2. បើក hidden file ដោយប្រើ shortcut ខាងលើ។ តើមាន dotfile អ្វីខ្លះលេចឡើងក្នុង home folder របស់អ្នក?
  3. បើក file extension បើពួកវាត្រូវបានលាក់ (លើ Windows៖ View → Show → File name extensions)។
  4. រករូបថតមួយ ហើយចម្លង path ពេញរបស់វា (Shift + ចុចស្តាំ → Copy as path លើ Windows, Option + ចុចស្តាំ → Copy as Pathname លើ macOS)។ បិទភ្ជាប់វានៅកន្លែងណាមួយ ហើយអានវា — នោះគឺជាអាសយដ្ឋាន absolute របស់ file នោះ។
  5. ចម្លងរូបថតនោះ ហើយប្តូរឈ្មោះច្បាប់ចម្លងពី .jpg ទៅជា .txt។ បើកវា — អ្នកនឹងឃើញតួអក្សររញ៉េរញ៉ៃក្នុង text editor។ ប្តូរឈ្មោះវាត្រឡប់មកវិញ ហើយវាបើកជារូបថតម្តងទៀត។ Byte មិនដែលផ្លាស់ប្តូរទេ។

File និង folder ត្រូវបានរៀបចំដោយ file system ដែលត្រូវបានដំណើរការដោយប្រព័ន្ធប្រតិបត្តិការ។ បន្ទាប់ សូមមើលប្រព័ន្ធប្រតិបត្តិការខ្លួនវាផ្ទាល់។

ទិញកាហ្វេជូនខ្ញុំ

ចូលចិត្តមេរៀននេះមែនទេ? សូមពិចារណាទិញកាហ្វេជូនខ្ញុំមួយកែវ ដើម្បីគាំទ្រការបង្កើតមាតិកាឥតគិតថ្លៃបន្ថែមទៀត!