List Only Directory เป็นแบบเรียกซ้ำใน Linux หรือไม่?

Is List Only Directories Recursively Linux



คำเรียกซ้ำหมายถึงข้อเท็จจริงที่ว่าคำสั่งระบบปฏิบัติการ Linux หรือ Unix เกี่ยวข้องกับเนื้อหาของโฟลเดอร์ และหากโฟลเดอร์มีโฟลเดอร์ย่อยและเอกสาร คำสั่งจะยังคงทำงานกับเอกสารเหล่านั้นทั้งหมด (แบบเรียกซ้ำ) อาจเป็นไปได้ว่าไดเร็กทอรีย่อยมีชุดไฟล์และโฟลเดอร์เป็นของตัวเอง (เช่น โฟลเดอร์ขนาดใหญ่) เป็นต้น คุณจะใช้คำแนะนำ Linux ที่แตกต่างกันเพื่อสำรวจแต่ละโฟลเดอร์ซ้ำๆ ก่อนไปยังขอบของโฟลเดอร์ที่ระบุ ในระดับนั้น คำสั่งของ Linux จะกลับไปที่การปิดของโครงสร้าง และทำซ้ำขั้นตอนสำหรับโฟลเดอร์ย่อยที่มีอยู่ ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีทั้งหมดในการแสดงรายการไดเร็กทอรีแบบเรียกซ้ำ

ตัวอย่างของ Simple List Directory

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







$ ls -l



ในการแสดงรายการไดเร็กทอรีและไฟล์ทั้งหมดภายในระบบ Linux คุณต้องใช้ -la แทน -l แบบธรรมดาในคำสั่ง list ดังนั้นให้รันคำสั่งที่อัปเดตเพื่อดำเนินการดังกล่าว ผลลัพธ์จะแสดงไฟล์และโฟลเดอร์ทั้งหมดพร้อมกับข้อมูลเพิ่มเติม



$ ls -la





หากต้องการแสดงรายการไดเร็กทอรีโดยไม่มีข้อมูลเพิ่มเติม ให้ลองใช้คำสั่งด้านล่างตามด้วยแฟล็ก -d

$ ls –d * /



คุณยังสามารถใช้คำสั่งเดียวกันโดยปรับเปลี่ยนเพียงเล็กน้อยเพื่อแสดงรายการโฟลเดอร์พร้อมกับข้อมูลเพิ่มเติม คุณเพียงแค่ต้องเพิ่มแฟล็ก -l ภายในคำสั่งนี้ดังนี้:

$ ls –l –d * /

หากต้องการตรวจสอบเฉพาะจำนวนไฟล์ทั้งหมดในโฮมไดเร็กทอรีที่ระบุ ให้ลองใช้คำสั่งที่แสดงด้านล่างในเชลล์ คุณจะได้รับจำนวนไฟล์ทั้งหมดในระบบปฏิบัติการ Linux ของคุณ

$ ls –l | egrep –v '^ d'

ตัวอย่างรายการไดเรกทอรีแบบเรียกซ้ำ

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

แสดงรายการซ้ำโดยใช้ -lR Flag

ในการใช้แฟล็ก -lR ในการสืบค้นของคุณเพื่อแสดงรายการไดเร็กทอรีทั้งหมดของระบบ Linux แบบเรียกซ้ำเป็นวิธีแรกในการทำเช่นนั้น เมื่อดำเนินการคำสั่ง list ด้านล่าง จะแสดงรายการโฟลเดอร์ทั้งหมดและโฟลเดอร์ย่อยพร้อมกับรายละเอียดโบนัสตามที่แสดงในผลลัพธ์

$ ls -lR

ให้เราแสดงรายการไฟล์หรือโฟลเดอร์ทั้งหมดซ้ำๆ จากโฟลเดอร์หรือไดเร็กทอรีเฉพาะบางรายการของระบบ Linux ของคุณ เพื่อจุดประสงค์นี้ ให้เพิ่มพาธตำแหน่งของไดเร็กทอรีเฉพาะเพื่อแสดงรายการซ้ำ เราต้องการแสดงรายการไฟล์และโฟลเดอร์ทั้งหมดของไดเร็กทอรี Documents ที่อยู่ในโฮมไดเร็กทอรีซ้ำ ๆ โดยใช้คำสั่งที่อัปเดตด้านล่าง ผลลัพธ์จะแสดงไฟล์และโฟลเดอร์ทั้งหมดภายในโฟลเดอร์เอกสารพร้อมกับข้อมูลเพิ่มเติม

$ ls –lR / home / aqsayasin / เอกสาร /

แสดงรายการซ้ำโดยใช้คำสั่งค้นหา

ทำให้ชัดเจนว่าไม่ใช่ทุกระบบ Linux เช่น macOS, Unix-like OS ที่มีตัวเลือกในการใช้ -R เพื่อแสดงรายการไดเร็กทอรี ในกรณีนั้น มีคำสั่งอื่นๆ ที่สามารถตอบสนองความต้องการของเราได้ ซึ่งก็คือคำสั่ง find และ print ในคำสั่งนี้ เราจะให้พาธไปยังโฟลเดอร์พร้อมกับการใช้คำสั่ง -ls เมื่อใช้ -ls ในคำสั่ง หมายความว่าจะแสดงข้อมูลเพิ่มเติมเกี่ยวกับไฟล์และโฟลเดอร์ที่อยู่ภายในไดเรกทอรีที่ระบุด้วย ลองใช้คำสั่งด้านล่างในเชลล์เพื่อแสดงรายการไฟล์และโฟลเดอร์ทั้งหมดของเอกสารไดเรกทอรีซ้ำ

$ find /home/aqsayasin/Documents/ -print -ls

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

$ find /home/aqsayasin/Documents/ -print

แสดงรายการซ้ำโดยใช้ -du Command

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

$ du –a / home / aqsayasin / เอกสาร /

แสดงรายการซ้ำโดยใช้คำสั่งต้นไม้

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

$ tree /home/aqsayasin/เอกสาร/

ลองใช้คำสั่ง tree เดียวกันกับตำแหน่งอื่น คราวนี้เราจะแสดงรายการโฟลเดอร์ของไดเร็กทอรี 'Home' ของผู้ใช้ aqsayasin ซ้ำๆ ผลลัพธ์แสดงสาขาของโฟลเดอร์ Home ซึ่งมีทั้งหมด 14 โฟลเดอร์ โฟลเดอร์ย่อย และ 5 ไฟล์

$ tree /home/aqsayasin/

บทสรุป

เราได้ลองใช้วิธีการแบบเรียกซ้ำทั้งหมดเพื่อแสดงรายการไดเร็กทอรีและไฟล์แบบเรียกซ้ำ เช่น แฟล็ก -lR ค้นหาและพิมพ์คำสั่ง du และ tree