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

คู่มือนี้จะแสดงวิธีสร้างโฟลเดอร์หรือไดเรกทอรีใหม่ภายใน 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 - หมายความว่ามีสิทธิ์หายไป ในตัวอย่างข้างต้นบุคคลในกลุ่มสามารถเข้าถึงโฟลเดอร์และอ่านไฟล์ แต่ไม่สามารถเขียนลงในโฟลเดอร์ได้

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

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

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

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

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

chmod 750 test

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

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

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

บัญชี groupadd

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

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

บัญชี chgrp

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

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

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

การทดสอบ chmod 770

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

usermod -a -G accounts

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

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

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

mkdir -m777

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

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

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

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

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

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

mkdir -p

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

mkdir -p ~ / music / rock / alicecooper

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

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

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

mkdir -v

ผลลัพธ์จะอยู่ในบรรทัดของ mkdir: directory สร้าง / path / to / directoryname

ใช้ & # 34; mkdir & # 34; ในเชลล์สคริปต์

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

#! / bin / ทุบตี

mkdir $ @

cd $ @

แตะสวัสดี

บรรทัดแรกควรรวมอยู่ในสคริปต์ทุกบทที่คุณเขียนและใช้เพื่อแสดงว่านี่เป็นสคริปต์ 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

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

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

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

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

#! / bin / ทุบตี

mkdir -p $ @

cd $ @

แตะสวัสดี

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

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

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

#! / bin / ทุบตี

mkdir -p $ @

cd $ @

echo "สวัสดี" >> สวัสดี

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

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

#! / bin / ทุบตี

mkdir $ @ 2> / dev / null;

ถ้า [$? -eq 0]; แล้วก็

cd $ @

echo "สวัสดี" >> สวัสดี

ทางออก

Fi

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

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

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

#! / bin / ทุบตี

mkdir $ @ 2> / dev / null;

ถ้า [$? -eq 0]; แล้วก็
cd $ @
echo "สวัสดี" >> สวัสดี
ทางออก
อื่น
cd $ @
echo "สวัสดี"> สวัสดี
ทางออก
Fi

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

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