Skip to main content

วิธีสร้างไดเรกทอรีใน Linux ด้วยคำสั่ง 'mkdir'

คำสั่งใน Ubuntu ตอน คำสั่งลบ สร้างไดเรกทอรี่ (มิถุนายน 2025)

คำสั่งใน Ubuntu ตอน คำสั่งลบ สร้างไดเรกทอรี่ (มิถุนายน 2025)
Anonim

คู่มือนี้จะแสดงวิธีสร้างโฟลเดอร์หรือไดเรกทอรีใหม่ภายใน Linux โดยใช้บรรทัดคำสั่ง

คำสั่งที่คุณใช้สำหรับสร้างไดเรกทอรีคือ mkdir บทความนี้แสดงวิธีการพื้นฐานในการสร้างไดเรกทอรีใน Linux รวมถึงการครอบคลุมสวิทช์ทั้งหมดที่มีอยู่

วิธีการสร้างไดเรกทอรีใหม่

วิธีที่ง่ายที่สุดในการสร้างไดเร็กทอรีใหม่มีดังนี้:

mkdir

ตัวอย่างเช่นถ้าคุณต้องการสร้างไดเร็กทอรีภายใต้โฟลเดอร์บ้านที่เรียกว่า test ให้เปิดหน้าต่างเทอร์มินัลและตรวจดูให้แน่ใจว่าคุณอยู่ในโฟลเดอร์บ้านของคุณ (ใช้คำสั่ง cd ~)

การทดสอบ mkdir

การเปลี่ยนสิทธิ์ของไดเรกทอรีใหม่

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

ในส่วนสุดท้ายให้ดูวิธีสร้างไดเรกทอรีที่เรียกว่า test การรันคำสั่ง ls จะแสดงสิทธิ์สำหรับไดเร็กทอรีนั้น:

ls-lt

โอกาสที่คุณจะมีบางอย่างตามบรรทัดเหล่านี้:

drwxr-xr-x 2 กลุ่มเจ้าของ 4096 9 มี.ค. 19:34 test

บิตที่เราสนใจคือเจ้าของ drwxr-xr-xและ กลุ่ม

d บอกเราว่าการทดสอบเป็นไดเร็กทอรี

อักขระสามตัวแรกหลัง d คือสิทธิ์ของเจ้าของสำหรับไดเรกทอรีที่ระบุโดยชื่อเจ้าของ:

  • r หมายถึงการอ่าน
  • w หมายถึงการเขียน
  • x หมายถึง execute (ซึ่งในกรณีนี้หมายความว่าคุณสามารถเข้าถึงโฟลเดอร์)

อักขระสามตัวถัดไปคือสิทธิ์ของกลุ่มสำหรับไฟล์ที่ระบุโดยชื่อกลุ่ม อีกตัวเลือกคือ r, w, และ x - หมายความว่ามีสิทธิ์หายไป ในตัวอย่างข้างต้นบุคคลในกลุ่มสามารถเข้าถึงโฟลเดอร์และอ่านไฟล์ แต่ไม่สามารถเขียนลงในโฟลเดอร์ได้

อักขระสามตัวสุดท้ายคือสิทธิ์ที่ผู้ใช้ทั้งหมดมีและตามที่เห็นในตัวอย่างข้างต้นจะเหมือนกับสิทธิ์ของกลุ่ม

ในการเปลี่ยนสิทธิ์สำหรับไฟล์หรือโฟลเดอร์คุณสามารถใช้chmodคำสั่ง คำสั่ง chmod ช่วยให้คุณระบุ 3 หมายเลขที่กำหนดสิทธิ์:

  • สิทธิ์การอ่าน = 4
  • สิทธิ์การเขียน = 2
  • สิทธิ์การดำเนินการ = 1

เพื่อให้ได้รับสิทธิ์ที่หลากหลายคุณสามารถเพิ่มตัวเลขด้วยกัน เช่นเพื่อให้ได้อ่านและดำเนินการสิทธิ์จำนวนที่คุณต้องการคือ 5 เพื่อให้ได้อ่านและเขียนสิทธิ์จำนวนคือ 6 และได้รับการเขียนและดำเนินการสิทธิ์จำนวนเป็น 3

โปรดจำไว้ว่าคุณต้องระบุ 3 หมายเลขเป็นส่วนหนึ่งของคำสั่ง chmod หมายเลขแรกเป็นสิทธิ์ของเจ้าของหมายเลขที่สองเป็นสิทธิ์กลุ่มและหมายเลขสุดท้ายสำหรับทุกคน

ตัวอย่างเช่นหากต้องการรับสิทธิ์แบบเต็มสำหรับเจ้าของให้อ่านและเรียกใช้สิทธิ์ในกลุ่มและไม่มีสิทธิ์สำหรับบุคคลอื่น ๆ ดังต่อไปนี้:

chmod 750 test

ถ้าคุณต้องการเปลี่ยนชื่อกลุ่มที่เป็นเจ้าของโฟลเดอร์ให้ใช้คำสั่ง chgrp

ตัวอย่างเช่นสมมติว่าคุณต้องการสร้างไดเรกทอรีที่บัญชีทั้งหมดใน บริษัท ของคุณสามารถเข้าถึงได้

ก่อนอื่นให้สร้างบัญชีกลุ่มโดยพิมพ์ข้อมูลต่อไปนี้

บัญชี groupadd

หากคุณไม่มีสิทธิ์ที่ถูกต้องในการสร้างกลุ่มคุณอาจต้องใช้ sudo เพื่อรับสิทธิพิเศษหรือเปลี่ยนเป็นบัญชีที่มีสิทธิ์ที่ถูกต้องโดยใช้คำสั่ง su

ตอนนี้คุณสามารถเปลี่ยนกลุ่มสำหรับโฟลเดอร์โดยพิมพ์ข้อความต่อไปนี้:

บัญชี chgrp

ตัวอย่างเช่น:

การทดสอบบัญชี chgrp

เพื่อให้ทุกคนในกลุ่มบัญชีสามารถอ่านอ่านเขียนและเรียกใช้สิทธิ์การเข้าถึงตลอดจนเจ้าของได้ แต่จะอ่านอย่างเดียวกับทุกคนอื่น ๆ ที่คุณสามารถใช้คำสั่งต่อไปนี้:

การทดสอบ chmod 770

ในการเพิ่มผู้ใช้ลงในกลุ่มบัญชีคุณอาจต้องการใช้คำสั่งต่อไปนี้:

usermod -a -G บัญชี

คำสั่งดังกล่าวจะต่อท้ายกลุ่มบัญชีกับรายชื่อกลุ่มรองที่ผู้ใช้สามารถเข้าถึงได้

วิธีสร้างไดเรกทอรีและตั้งสิทธิ์ในเวลาเดียวกัน

คุณสามารถสร้างไดเร็กทอรีและตั้งค่าสิทธิ์สำหรับไดเร็กทอรีนั้นในเวลาเดียวกันโดยใช้คำสั่งต่อไปนี้:

mkdir-m777

คำสั่งดังกล่าวจะสร้างโฟลเดอร์ที่ทุกคนสามารถเข้าถึงได้ หายากมากที่คุณจะต้องการสร้างอะไรด้วยสิทธิ์แบบนี้

สร้างโฟลเดอร์และผู้ปกครองที่ต้องการ

ลองจินตนาการว่าคุณต้องการสร้างโครงสร้างไดเร็กทอรี แต่คุณไม่ต้องการสร้างโฟลเดอร์แต่ละโฟลเดอร์พร้อมกับวิธีและหาทางลงต้นไม้

ตัวอย่างเช่นคุณอาจสร้างโฟลเดอร์สำหรับเพลงของคุณดังนี้:

  • / home / เพลง / ร็อค / อลิซคูเปอร์
  • / home / เพลง / ร็อค / ราชินี
  • / home / เพลง / แร็พ / drdre
  • / home / เพลง / แจ๊ส / louisjordan

มันน่ารำคาญที่ต้องสร้างโฟลเดอร์ร็อคแล้ว alice cooper และ queen folder จากนั้นก็สร้างโฟลเดอร์แร็ปและโฟลเดอร์ dr dre และโฟลเดอร์ jazz และโฟลเดอร์ louisjordan

โดยระบุสวิตช์ต่อไปนี้คุณสามารถสร้างโฟลเดอร์หลักทั้งหมดได้ทันทีหากยังไม่มีอยู่

mkdir -p

ตัวอย่างเช่นในการสร้างโฟลเดอร์ในรายการข้างต้นลองใช้คำสั่งต่อไปนี้:

mkdir -p ~ / music / rock / alicecooper

การยืนยันว่าสร้างไดเรกทอรีแล้ว

โดยค่าเริ่มต้นคำสั่ง mkdir ไม่ได้บอกคุณว่าไดเร็กทอรีที่คุณกำลังสร้างเสร็จสมบูรณ์แล้วหรือไม่ หากไม่มีข้อผิดพลาดปรากฏขึ้นคุณสามารถสมมติว่ามี

ถ้าคุณต้องการได้รับผลลัพธ์ verbose มากขึ้นเพื่อให้คุณทราบว่ามีอะไรสร้างขึ้นมาให้ใช้สวิตช์ต่อไปนี้

mkdir -v

ผลลัพธ์จะเป็นไปตามบรรทัดmkdir: สร้างไดเรกทอรี / เส้นทาง / ไป / directoryname.

ใช้ "mkdir" ในเชลล์สคริปต์

บางครั้งคุณอาจต้องการใช้คำสั่ง "mkdir" เป็นส่วนหนึ่งของสคริปต์เชลล์ ตัวอย่างเช่นลองดูสคริปต์ที่ยอมรับเส้นทาง เมื่อสคริปต์ถูกเรียกใช้จะสร้างโฟลเดอร์และเพิ่มไฟล์ข้อความเดียวที่เรียกว่า "สวัสดี"

#! / bin / bash mkdir $ @ cd $ @ touch สวัสดี

บรรทัดแรกควรรวมอยู่ในสคริปต์ทุกบทที่คุณเขียนและใช้เพื่อแสดงว่านี่เป็นสคริปต์ BASH

คำสั่ง "mkdir" ใช้เพื่อสร้างโฟลเดอร์ "$ @" (หรือที่เรียกว่าพารามิเตอร์อินพุท) ที่ท้ายบรรทัดที่ 2 และบรรทัดที่ 3 จะถูกแทนที่ด้วยค่าที่คุณระบุเมื่อเรียกใช้สคริปต์

คำสั่ง "cd" เปลี่ยนเป็นไดเร็กทอรีที่คุณระบุและในที่สุดคำสั่งสัมผัสจะสร้างไฟล์ว่างเปล่าที่เรียกว่า "hello"

คุณสามารถลองใช้สคริปต์ได้ด้วยตัวคุณเอง โดยทำตามคำแนะนำต่อไปนี้:

  1. เปิดหน้าต่างเทอร์มินัล (กด Alt และ T ควรทำ)
  2. เข้าสู่ nano createhellodirectory.sh
  3. พิมพ์คำสั่งข้างต้นลงในตัวแก้ไข
  4. บันทึกไฟล์โดยการกด CTRL และ O ในเวลาเดียวกัน
  5. ออกจากไฟล์โดยการกด CTRL และ X ในเวลาเดียวกัน
  6. เปลี่ยนสิทธิ์โดยการพิมพ์ chmod + x createhellodirectory.sh
  7. เรียกใช้สคริปต์โดยการพิมพ์ ทดสอบ / createhellodirectory.sh

เมื่อคุณเรียกใช้สคริปต์จะมีการสร้างไดเร็กทอรีชื่อ "test" และถ้าคุณเปลี่ยนไปใช้ไดเร็กทอรีนั้น (cd test) และเรียกใช้รายชื่อไดเรกทอรี (LS) คุณจะเห็นไฟล์เดียวชื่อ "สวัสดี"

จนถึงขณะนี้ดี แต่ตอนนี้ลองทำงานขั้นตอนที่ 7 อีกครั้ง

  1. ข้อผิดพลาดจะปรากฏขึ้นระบุว่ามีโฟลเดอร์อยู่แล้ว

มีหลายสิ่งที่เราสามารถทำได้เพื่อปรับปรุงสคริปต์ ตัวอย่างเช่นหากโฟลเดอร์มีอยู่แล้วเราไม่สนใจเป็นพิเศษตราบเท่าที่มีอยู่

#! / bin / bash mkdir -p $ @ cd $ @ touch สวัสดี

หากคุณระบุ -p เป็นส่วนหนึ่งของคำสั่ง mkdir จะไม่มีข้อผิดพลาดหากโฟลเดอร์มีอยู่แล้ว แต่ถ้าไม่มีอยู่จะสร้างขึ้น

ตามที่เกิดขึ้นคำสั่งสัมผัสจะสร้างแฟ้มถ้าไม่มีอยู่ แต่ถ้ามันไม่อยู่เพียงแก้ไขวันที่เข้าถึงล่าสุดและเวลา

ลองจินตนาการว่าคำสั่ง touch ถูกแทนที่ด้วยคำสั่ง echo ที่เขียนข้อความลงในไฟล์ดังนี้:

#! / bin / bash mkdir -p $ @ cd $ @ echo "สวัสดี" >> สวัสดี

ถ้าคุณเรียกใช้คำสั่ง "./createhellodirectory.sh test" อีกครั้งจะมีผลว่าไฟล์ "hello" ในไดเร็กทอรีทดสอบจะโตขึ้นและใหญ่ขึ้นโดยมีบรรทัดคำว่า "hello" ขึ้นเรื่อย ๆ

ตอนนี้อาจจะหรืออาจจะไม่ได้ตามที่ตั้งใจ แต่สมมติว่าตอนนี้ไม่ได้เป็นการกระทำที่ต้องการ คุณสามารถเขียนการทดสอบเพื่อให้แน่ใจว่าไดเร็กทอรีไม่อยู่ก่อนที่คุณจะรันคำสั่ง echo ดังต่อไปนี้

#! / bin / bash mkdir $ @ 2> / dev / null; ถ้า $? -eq 0; จากนั้นให้ cd $ @ echo "hello" >> hello exit fi

สคริปต์ข้างต้นเป็นวิธีที่ฉันต้องการในการจัดการกับการสร้างโฟลเดอร์ คำสั่ง mkdir สร้างโฟลเดอร์ที่ส่งผ่านเป็นพารามิเตอร์อินพุท แต่ผลลัพธ์ข้อผิดพลาดใด ๆ ถูกส่งไปที่ / dev / null (ซึ่งหมายถึงว่าไม่มีที่ไหนเลย)

บรรทัดที่สามจะตรวจสอบสถานะเอาต์พุตของคำสั่งก่อนหน้าซึ่งเป็นคำสั่ง "mkdir" และถ้าทำสำเร็จจะดำเนินการคำสั่งจนกว่าจะถึงคำชี้แจง "fi"

ซึ่งหมายความว่าคุณสามารถสร้างโฟลเดอร์และทำทุกสิ่งที่คุณต้องการได้หากคำสั่งนี้สำเร็จ ถ้าคุณต้องการทำอย่างอื่นถ้าคำสั่งไม่สำเร็จคุณก็สามารถป้อนคำสั่งอื่นได้ดังนี้:

#! / bin / bash mkdir $ @ 2> / dev / null; ถ้า $? -eq 0; thencd $ @ echo "hello" >> helloexitelsecd $ @ echo "hello"> helloexitfi

ในสคริปต์ด้านบนถ้าคำสั่ง mkdir ทำงานแล้วคำสั่ง echo จะส่งคำว่า "hello" ไปที่ตอนท้ายของไฟล์ที่ชื่อว่า "hello" ในขณะที่หากไม่มีไฟล์ใหม่จะถูกสร้างขึ้นเรียกว่า "hello" ด้วยคำว่า " สวัสดี "ในนั้น

ตัวอย่างนี้ไม่ได้เป็นประโยชน์อย่างยิ่งเพราะคุณสามารถบรรลุผลเช่นเดียวกันโดยการใช้งาน echo "hello"> สาย hello. จุดของตัวอย่างคือเพื่อแสดงให้เห็นว่าคุณสามารถเรียกใช้คำสั่ง "mkdir" ซ่อนเอาต์พุตข้อผิดพลาดตรวจสอบสถานะของคำสั่งเพื่อดูว่ามันประสบความสำเร็จหรือไม่แล้วดำเนินการชุดคำสั่งถ้าคำสั่ง "mkdir" ประสบความสำเร็จและชุดของคำสั่งถ้ามันไม่ได้