คู่มือนี้จะแสดงวิธีสร้างโฟลเดอร์หรือไดเรกทอรีใหม่ภายใน Linux โดยใช้บรรทัดคำสั่ง
คำสั่งที่คุณใช้สำหรับสร้างไดเรกทอรีคือ mkdir บทความนี้แสดงวิธีการพื้นฐานในการสร้างไดเรกทอรีใน Linux รวมถึงการครอบคลุมสวิทช์ทั้งหมดที่มีอยู่
วิธีการสร้างไดเรกทอรีใหม่
วิธีที่ง่ายที่สุดในการสร้างไดเร็กทอรีใหม่มีดังนี้:
mkdir ตัวอย่างเช่นถ้าคุณต้องการสร้างไดเร็กทอรีภายใต้โฟลเดอร์บ้านที่เรียกว่า test ให้เปิดหน้าต่างเทอร์มินัลและตรวจดูให้แน่ใจว่าคุณอยู่ในโฟลเดอร์บ้านของคุณ (ใช้คำสั่ง cd ~) หลังจากสร้างโฟลเดอร์ใหม่แล้วคุณอาจต้องการตั้งค่าสิทธิ์เพื่อให้เฉพาะผู้ใช้บางรายเท่านั้นที่สามารถเข้าถึงโฟลเดอร์หรือเพื่อให้บางคนสามารถแก้ไขไฟล์ในโฟลเดอร์ได้ แต่ผู้อื่นจะอ่านได้เท่านั้น ในส่วนสุดท้ายให้ดูวิธีสร้างไดเรกทอรีที่เรียกว่า 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 บัญชี คำสั่งดังกล่าวจะต่อท้ายกลุ่มบัญชีกับรายชื่อกลุ่มรองที่ผู้ใช้สามารถเข้าถึงได้ คุณสามารถสร้างไดเร็กทอรีและตั้งค่าสิทธิ์สำหรับไดเร็กทอรีนั้นในเวลาเดียวกันโดยใช้คำสั่งต่อไปนี้: mkdir-m777 คำสั่งดังกล่าวจะสร้างโฟลเดอร์ที่ทุกคนสามารถเข้าถึงได้ หายากมากที่คุณจะต้องการสร้างอะไรด้วยสิทธิ์แบบนี้ ลองจินตนาการว่าคุณต้องการสร้างโครงสร้างไดเร็กทอรี แต่คุณไม่ต้องการสร้างโฟลเดอร์แต่ละโฟลเดอร์พร้อมกับวิธีและหาทางลงต้นไม้ ตัวอย่างเช่นคุณอาจสร้างโฟลเดอร์สำหรับเพลงของคุณดังนี้: มันน่ารำคาญที่ต้องสร้างโฟลเดอร์ร็อคแล้ว alice cooper และ queen folder จากนั้นก็สร้างโฟลเดอร์แร็ปและโฟลเดอร์ dr dre และโฟลเดอร์ jazz และโฟลเดอร์ louisjordan โดยระบุสวิตช์ต่อไปนี้คุณสามารถสร้างโฟลเดอร์หลักทั้งหมดได้ทันทีหากยังไม่มีอยู่ mkdir -p ตัวอย่างเช่นในการสร้างโฟลเดอร์ในรายการข้างต้นลองใช้คำสั่งต่อไปนี้: mkdir -p ~ / music / rock / alicecooper โดยค่าเริ่มต้นคำสั่ง mkdir ไม่ได้บอกคุณว่าไดเร็กทอรีที่คุณกำลังสร้างเสร็จสมบูรณ์แล้วหรือไม่ หากไม่มีข้อผิดพลาดปรากฏขึ้นคุณสามารถสมมติว่ามี ถ้าคุณต้องการได้รับผลลัพธ์ verbose มากขึ้นเพื่อให้คุณทราบว่ามีอะไรสร้างขึ้นมาให้ใช้สวิตช์ต่อไปนี้ mkdir -v ผลลัพธ์จะเป็นไปตามบรรทัดmkdir: สร้างไดเรกทอรี / เส้นทาง / ไป / directoryname. บางครั้งคุณอาจต้องการใช้คำสั่ง "mkdir" เป็นส่วนหนึ่งของสคริปต์เชลล์ ตัวอย่างเช่นลองดูสคริปต์ที่ยอมรับเส้นทาง เมื่อสคริปต์ถูกเรียกใช้จะสร้างโฟลเดอร์และเพิ่มไฟล์ข้อความเดียวที่เรียกว่า "สวัสดี" #! / bin / bash mkdir $ @ cd $ @ touch สวัสดี บรรทัดแรกควรรวมอยู่ในสคริปต์ทุกบทที่คุณเขียนและใช้เพื่อแสดงว่านี่เป็นสคริปต์ BASH คำสั่ง "mkdir" ใช้เพื่อสร้างโฟลเดอร์ "$ @" (หรือที่เรียกว่าพารามิเตอร์อินพุท) ที่ท้ายบรรทัดที่ 2 และบรรทัดที่ 3 จะถูกแทนที่ด้วยค่าที่คุณระบุเมื่อเรียกใช้สคริปต์ คำสั่ง "cd" เปลี่ยนเป็นไดเร็กทอรีที่คุณระบุและในที่สุดคำสั่งสัมผัสจะสร้างไฟล์ว่างเปล่าที่เรียกว่า "hello" คุณสามารถลองใช้สคริปต์ได้ด้วยตัวคุณเอง โดยทำตามคำแนะนำต่อไปนี้: เมื่อคุณเรียกใช้สคริปต์จะมีการสร้างไดเร็กทอรีชื่อ "test" และถ้าคุณเปลี่ยนไปใช้ไดเร็กทอรีนั้น (cd test) และเรียกใช้รายชื่อไดเรกทอรี (LS) คุณจะเห็นไฟล์เดียวชื่อ "สวัสดี" จนถึงขณะนี้ดี แต่ตอนนี้ลองทำงานขั้นตอนที่ 7 อีกครั้ง มีหลายสิ่งที่เราสามารถทำได้เพื่อปรับปรุงสคริปต์ ตัวอย่างเช่นหากโฟลเดอร์มีอยู่แล้วเราไม่สนใจเป็นพิเศษตราบเท่าที่มีอยู่ #! / 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" ประสบความสำเร็จและชุดของคำสั่งถ้ามันไม่ได้ การเปลี่ยนสิทธิ์ของไดเรกทอรีใหม่
วิธีสร้างไดเรกทอรีและตั้งสิทธิ์ในเวลาเดียวกัน
สร้างโฟลเดอร์และผู้ปกครองที่ต้องการ
การยืนยันว่าสร้างไดเรกทอรีแล้ว
ใช้ "mkdir" ในเชลล์สคริปต์