În întrebarea dvs. inițială, încercați să creați o ierarhie de fișiere ca aceasta:
.
âââ infinit2
â  âââ infinit1
...
â (nivel nesfârșit profund) âââ infinit2
iar scriptul tău începe să primească erori atunci când „adâncimea” atinge „nivelul” 406. Nu există un sistem de fișiere cunoscut care să poată conține atât de multe niveluri de subdirectoare cât cele dorite.
Cu toate acestea, în comentariile dvs., se pare că doriți o ierarhie de directoare ca aceasta:
.
âââ dir000000001
âââ dir000000002
...
âââ dir124999999
âââ dir125000000
Deși este posibil să se creeze un număr atât de mare de un singur nivel subdirectoare dintr-un director folosind un script ca acesta:
#!/bin/bash
fie i=0
în timp ce (( i < 125000 )) ; do
mkdir $(printf "dir%06d" $i){000..999}
lasă i++
Terminat
ar fi foarte foarte foarte (am spus de destule ori foarte?) ineficientă pentru a le crea și utiliza. eu a fost capabil să testeze acest script prin crearea a peste două milioane de directoare; dar 125 de milioane de directoare sunt mult prea multe.
O alternativă mai bună ar fi crearea unei structuri pe trei niveluri, fiecare nivel deținând o mie de subdirectoare într-o ierarhie ca aceasta:
.
âââ dir000
â  âââ 000
â  â  âââ 000
â  â  âââ 001
â  â  âââ 002
...
â  â  âââ 999
â  âââ 001
â  â  âââ 000
â  â  âââ 001
...
â â âââ 999
...
â âââ 999
â â âââ 000
...
â â âââ 999
...
âââ dir124
â âââ 000
...
â âââ 999
â â âââ 000
...
âââ 999
Următorul script poate fi folosit pentru a le crea:
#!/bin/bash
fie i=0
în timp ce (( i < 125000 )) ; do
fie a=i/1000
fie b=i%1000
mkdir -p $(printf "dir%03d/%03d/\n" $a $b){000..999}
lasă i++
Terminat
Chiar și în acest caz, așa ar fi foarte foarte foarte greu de folosit atât de multe directoare.
O altă problemă este că s-ar putea să rămâneți fără probleme inoduri în sistemul dvs. de fișiere: puteți obține infamul Nu a mai rămas spațiu pe dispozitiv
eroare, în timp ce sistemul dvs. de fișiere actual face au spațiu de stocare, dar nu rămâne spațiu inod pentru a crea un nou fișier sau director. Te rog verifică Sunt liber
coloana din df -i .
ieșirea comenzii, înainte de a rula scriptul de mai sus.
Deci, din nou, cred că acesta este un tipic Problema XY asta ar necesita o abordare complet diferită.