สรุปสิ่งที่ควรรู้
- เปิด terminal window ใน Linux
- ไปที่โฟลเดอร์ที่คุณต้องการไดเรกทอรีใหม่
- ใส่คำสั่ง mkdir ชื่อไดเรกทอรี
บทความนี้อธิบายวิธีสร้าง directories ใน Linux ด้วยคำสั่ง mkdir ยังครอบคลุม switches ที่ใช้กับ mkdir และ syntax ที่ถูกต้องที่จำเป็นเพื่อให้คำสั่งทำงานถูกต้อง
วิธีสร้างไดเรกทอรีใหม่
สร้าง directories ใหม่ใน Linux โดยใช้ command line และคำสั่ง mkdir
ตัวอย่างเช่น เพื่อสร้าง directory ชื่อ test ให้เปิด terminal window ไปที่โฟลเดอร์ที่คุณต้องการไดเรกทอรีใหม่ แล้วใส่ mkdir test

เปลี่ยนสิทธิ์ของไดเรกทอรีใหม่
หลังจากสร้างโฟลเดอร์ใหม่ ให้ตั้งค่าสิทธิ์ เพื่อให้เฉพาะผู้ใช้บางคนเข้าถึงได้ หรือบางคนแก้ไขไฟล์ในโฟลเดอร์ได้ แต่อื่นๆ อ่านได้อย่างเดียว
เพื่อต่อยอดตัวอย่างข้างต้น ให้รันคำสั่ง ls เพื่อดูสิทธิ์ของโฟลเดอร์ชื่อ test:
ls -lt

รันคำสั่ง ls ในโฟลเดอร์ที่ test folder อยู่ หากมันคือ home directory ของคุณ (เช่นคุณไม่ได้ใช้คำสั่ง cd) คุณไม่ต้องเปลี่ยนไดเรกทอรีที่นี่
คุณควรเห็นอย่างน้อยอย่างนี้ (แต่อาจมีรายการอื่นๆ เพราะมีโฟลเดอร์อื่นอยู่):
drwxr-xr-x 2 owner group 4096 Jan 22 10:43 test
สิทธิ์คือ drwxrwxr-x, 2, owner, และ group
- ตัว d บ่งชี้ว่า test เป็น directory ตัวอักษร 3 ตัวแรกหลัง d คือ owner permissions สำหรับไดเรกทอรีที่ระบุโดยชื่อ owner: r สำหรับ read, w สำหรับ write, x สำหรับ execute (หมายถึงคุณสามารถเข้าถึงโฟลเดอร์ได้)
- ตัวอักษร 3 ตัวถัดไปคือ group permissions สำหรับไฟล์ที่ระบุโดยชื่อกลุ่ม ตัวเลือกคือ r, w, และ x ขีดกลางหมายถึงสิทธิ์ที่ขาดหายไป ในตัวอย่างข้างต้น คนที่อยู่ในกลุ่มสามารถเข้าถึงโฟลเดอร์และเห็นไฟล์ได้ แต่เขียนในโฟลเดอร์ไม่ได้
- ตัวอักษรสุดท้ายคือสิทธิ์ที่ผู้ใช้ทุกคนมี และเหมือนกับ group permissions
เพื่อเปลี่ยนสิทธิ์สำหรับไฟล์หรือโฟลเดอร์ ให้ใช้คำสั่ง chmod คำสั่ง chmod ให้คุณระบุตัวเลข 3 ตัวซึ่งตั้งค่าสิทธิ์:
- Read = 4
- Write = 2
- Execute = 1
บวกตัวเลขเข้าด้วยกันสำหรับผสมผสานสิทธิ์ ตัวอย่างเช่น เพื่อให้สิทธิ์ read และ execute ตัวเลขคือ 5 (4+1) หรือ read และ write ตัวเลขคือ 6 (4+2)
คุณต้องระบุตัวเลข 3 ตัวเป็นส่วนหนึ่งของคำสั่ง chmod ตัวแรกสำหรับ owner permissions ตัวที่สองสำหรับ group permissions และตัวสุดท้ายสำหรับคนอื่นๆ
ตัวอย่างเช่น สำหรับ owner ที่มี full permissions group ที่มี read และ execute และคนอื่นๆ ไม่มีสิทธิ์ ให้ใส่:
chmod 750 test
ใช้คำสั่ง chgrp เพื่อเปลี่ยนชื่อกลุ่มที่เป็นเจ้าของโฟลเดอร์ ตัวอย่างเช่น เพื่อสร้างไดเรกทอรีที่นักบัญชีในบริษัทเข้าถึงได้ ให้สร้างกลุ่ม accounts ก่อน โดยพิมพ์:
groupadd accounts
หากคุณไม่มีสิทธิ์ที่ถูกต้องในการสร้างกลุ่ม ให้ใช้ sudo เพื่อได้สิทธิ์พิเศษ หรือใช้คำสั่ง su เพื่อสลับไปบัญชีที่มีสิทธิ์ที่ถูกต้อง
ต่อมา ให้เปลี่ยนกลุ่มสำหรับโฟลเดอร์โดยพิมพ์:
chgrp accounts
ตัวอย่าง:
chgrp accounts test
เพื่อให้ owner และทุกคนในกลุ่ม accounts มี read, write, และ execute แต่คนอื่นมีแค่ read-only ให้ใช้คำสั่งต่อไปนี้:
chmod 770 test
วิธีสร้างไดเรกทอรีและตั้งค่าสิทธิ์พร้อมกัน
คุณสามารถสร้างไดเรกทอรีและตั้งค่าสิทธิ์สำหรับไดเรกทอรีนั้นพร้อมกันได้ด้วยคำสั่งต่อไปนี้:
mkdir -m777
คำสั่งนี้สร้างโฟลเดอร์ที่ทุกคนเข้าถึงได้ นานาก็ค่อนข้างน้อยที่จะสร้างโฟลเดอร์ด้วยสิทธิ์แบบนี้
สร้างโฟลเดอร์และ Parent Directories ที่จำเป็น
คุณสามารถสร้างโครงสร้างไดเรกทอรีโดยไม่ต้องสร้างแต่ละโฟลเดอร์แยกกัน ตัวอย่างเช่น สร้างโฟลเดอร์สำหรับเพลงดังนี้:
- /home/music/rock/alicecooper
- /home/music/rock/queen
- /home/music/rap/drdre
- /home/music/jazz/louisjordan
จะใช้เวลาในการสร้างโฟลเดอร์ rock สำหรับ alice cooper และ queen ตามด้วย rap และ jazz สำหรับคนอื่นๆ
โดยระบุ -p คุณสามารถสร้าง parent folders ทั้งหมด on-the-fly หากยังไม่มีอยู่:
mkdir -p
ตัวอย่างเช่น คำสั่ง mkdir นี้สร้างหนึ่งในโฟลเดอร์ข้างต้น:
mkdir -p ~/music/rock/alicecooper
รับการยืนยันว่าไดเรกทอรีถูกสร้างแล้ว
โดยค่าเริ่มต้น คำสั่ง mkdir ไม่บอกว่าไดเรกทอรีถูกสร้างสำเร็จหรือไม่ ปกติถ้าไม่มี error แสดง คุณสามารถสมมติว่าทำงานได้ อย่างไรก็ตาม หากคุณต้องการ output แบบ verbose เพื่อทราบว่าสร้างอะไรบ้าง ให้ใช้สวิตช์ -v:
mkdir -v
Output จะคล้ายกับนี้:
mkdir: created directory /path/to/directoryname
ใช้ mkdir ใน Shell Script
คุณยังสามารถใช้คำสั่ง mkdir เป็นส่วนหนึ่งของ shell script ได้ ตัวอย่างเช่น สคริปต์ที่รับ path เมื่อสคริปต์รัน มันจะสร้างโฟลเดอร์และเพิ่มไฟล์ข้อความเดี่ยวชื่อ hello
#!/bin/bash mkdir $@ cd $@ touch hello
- บรรทัดแรกควรอยู่ในทุกสคริปต์ที่คุณเขียน ใช้เพื่อบอกว่าเป็น BASH script
- mkdir สร้างโฟลเดอร์
- $@ (ที่รู้จักว่า input parameters) วางท้ายบรรทัดที่ 2 และ 3 จะถูกแทนที่ด้วยค่าที่คุณระบุตอนรันสคริปต์
- cd เปลี่ยนไปยังไดเรกทอรีที่คุณระบุ
- touch สร้างไฟล์ว่างชื่อ hello