Có bao nhiêu thư mục có thể được lồng nhau?


13

Tôi tò mò, có bao nhiêu thư mục có thể được lồng nhau, và tại sao? Có giới hạn không?

Ý tôi là bởi lồng nhau là khi các thư mục nằm trong cấu trúc này:

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

Không như thế này:

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

Nếu có giới hạn, nó được đặt bởi hệ điều hành, hay bởi hệ thống tập tin?

Câu trả lời:


20

Giới hạn sẽ là số inodes trên phân vùng của bạn vì các thư mục, như các tệp thông thường, mỗi nút có một nút .

Không có gì có thể ngăn bạn tạo một thư mục bên trong một thư mục bên trong một thư mục khác và cứ thế cho đến khi bạn hết inodes.

Lưu ý rằng dòng lệnh của shell có độ dài tối đa có thể gây ra sự cố với các đường dẫn thực sự dài, nhưng vẫn có thể cdtiến dần tới tệp mục tiêu.


2
Thật vậy, bằng thí nghiệm đây là những gì mkdir -pnó làm và nó cho phép vượt quá MAX_PATH. Các tệp như vậy không thể được mở bằng đường dẫn chính tắc của chúng, nhưng người ta có thể tạo chúng mà không gặp vấn đề gì.
DepressionDaniel

1
Thật ra nó khá logic. Một đường dẫn tương đối bắt đầu tại thư mục làm việc hiện tại, một nút. Các nút không được sắp xếp theo thứ bậc: không có sự khác biệt về mặt này giữa một thư mục được liên kết sâu trong tên hierachy và thư mục gốc của hệ thống tệp.
Johan Myréen

3
@JuliePelletier API POSIX (và Linux) xác định PATH_MAX tối đa (4096 trên Linux), ngắn hơn nhiều so với độ dài tối đa của dòng lệnh. Và trong khi chúng tôi đang nitpicking: dòng lệnh tối đa không thực sự là một hạn chế shell. Giới hạn được áp đặt bởi độ dài vectơ đối số cho lệnh execvegọi hệ thống và do đó áp dụng cho bất kỳ chương trình nào.
Johan Myréen

1
@ JohanMyréen: Đó là những quan sát tốt nhưng quan điểm của tôi là nó vẫn có thể truy cập tương đối, bất kể nó đi sâu đến đâu.
Julie Pelletier

2
@Arin Hãy thử df -i.
Johan Myréen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.