สามารถซ้อนไดเรกทอรีได้กี่ไดเรกทอรี


13

ฉันอยากรู้อยากเห็นหลายโฟลเดอร์ที่ซ้อนกันได้และทำไม? มีข้อ จำกัด หรือไม่?

สิ่งที่ฉันหมายถึงโดยซ้อนกันคือเมื่อโฟลเดอร์อยู่ในโครงสร้างนี้:

folder
 |_ folder
     |_ folder
         |_ folder
             |_ ...

ไม่เหมือน:

folder
 |_ folder
 |_ folder
 |_ folder
 |_ ...

หากมีข้อ จำกัด มันถูกกำหนดโดยระบบปฏิบัติการหรือโดยระบบไฟล์หรือไม่?

คำตอบ:


20

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

ไม่มีอะไรที่จะหยุดคุณจากการสร้างไดเรกทอรีภายในไดเรกทอรีภายในไดเรกทอรีอื่นและอื่น ๆ จนกว่าคุณจะวิ่งออกจากinodes

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


2
อันที่จริงแล้วโดยการทดลองนี่เป็นสิ่งที่mkdir -pทำและมันเกินความMAX_PATHสามารถ ไฟล์ดังกล่าวไม่สามารถเปิดได้โดยเส้นทางที่กำหนด แต่สามารถสร้างได้โดยไม่มีปัญหา
DepaniDaniel

1
มันค่อนข้างสมเหตุสมผล เส้นทางสัมพัทธ์เริ่มต้นที่ไดเรกทอรีทำงานปัจจุบัน inode Inodes ไม่ได้ถูกจัดเรียงตามลำดับชั้น: ไม่มีความแตกต่างในเรื่องนี้ระหว่างไดเร็กทอรีที่ลิงก์ในส่วนลึกของชื่อและไดเร็กทอรีรูทของระบบไฟล์
Johan Myréen

3
@JuliePelletier API POSIX (และ Linux) กำหนด PATH_MAX สูงสุด (4096 บน Linux) ซึ่งสั้นกว่าความยาวสูงสุดของบรรทัดคำสั่งมาก และในขณะที่เรากำลัง nitpicking: บรรทัดคำสั่งสูงสุดไม่ใช่ข้อ จำกัด ของเชลล์ ขีด จำกัด ถูกกำหนดโดยความยาวเวคเตอร์ของอาร์กิวเมนต์ให้กับการexecveเรียกของระบบดังนั้นจะใช้กับโปรแกรมใด ๆ
Johan Myréen

1
@ JohanMyréen: สิ่งเหล่านี้เป็นข้อสังเกตที่ดี แต่ประเด็นของฉันคือมันยังสามารถเข้าถึงได้ค่อนข้างดีไม่ว่ามันจะลึกแค่ไหนก็ตาม
Julie Pelletier

2
@Arin df -iลอง
Johan Myréen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.