Trong câu hỏi ban đầu của bạn, bạn cố gắng tạo một hệ thống phân cấp tệp như thế này:
.
âââ vô hạn2
â âââ vô hạn1
...
â (cấp độ sâu vô tận) âââ vô hạn2
và tập lệnh của bạn bắt đầu gặp lỗi khi "độ sâu" của bạn đạt đến "mức" thứ 406. Không có hệ thống tệp nào được biết đến có thể chứa nhiều cấp thư mục con như bạn muốn.
Tuy nhiên, trong nhận xét của bạn, có vẻ như bạn muốn có một hệ thống phân cấp thư mục như thế này:
.
âââ dir000000001
âââ dir000000002
...
âââ dir124999999
âââ dir125000000
Mặc dù có thể tạo ra một số lượng lớn như vậy Cấp một các thư mục con trong một thư mục bằng cách sử dụng tập lệnh như thế này:
#!/bin/bash
hãy để tôi = 0
trong khi (( i < 125000 )); làm
mkdir $(printf "dir%06d" $i){000..999}
để tôi ++
xong
nó sẽ là rất rất rất (tôi đã nói đủ lần chưa rất?) không hiệu quả để tạo và sử dụng chúng. Tôi là có thể kiểm tra tập lệnh này bằng cách tạo hơn hai triệu thư mục; nhưng 125 triệu thư mục là quá nhiều.
Một giải pháp thay thế tốt hơn là tạo cấu trúc ba cấp, mỗi cấp chứa một nghìn thư mục con trong một hệ thống phân cấp như sau:
.
âââ dir000
â âââ 000
â â âââ 000
â â  âââ 001
â â  âââ 002
...
â â  âââ 999
â âââ 001
â â âââ 000
â â  âââ 001
...
â â âââ 999
...
â âââ 999
â â âââ 000
...
â â âââ 999
...
âââ dir124
â âââ 000
...
â âââ 999
â â âââ 000
...
âââ 999
Tập lệnh sau có thể được sử dụng để tạo những thứ này:
#!/bin/bash
hãy để tôi = 0
trong khi (( i < 125000 )); làm
đặt a=i/1000
đặt b=i%1000
mkdir -p $(printf "dir%03d/%03d/\n" $a $b){000..999}
để tôi ++
xong
Ngay cả trong trường hợp này, nó sẽ là rất rất rất khó sử dụng rất nhiều thư mục.
Một vấn đề khác là bạn có thể dễ dàng hết nút trong hệ thống tệp của bạn: Bạn có thể nhận được tệp khét tiếng không còn chỗ trống trên thiết bị
lỗi, trong khi hệ thống tệp hiện tại của bạn làm có dung lượng lưu trữ, nhưng không còn dung lượng inode để tạo tệp hoặc thư mục mới. Vui lòng kiểm tra miễn phí
cột trong df -i .
đầu ra lệnh, trước khi chạy tập lệnh trên.
Vì vậy, một lần nữa, tôi nghĩ rằng đây là một điển hình vấn đề XY điều đó sẽ đòi hỏi một cách tiếp cận hoàn toàn khác.