Ile plików mogę mieć w jednym katalogu?

21

To pytanie jest związane z tym .

Pracuję z animacją, która generuje DUŻO plików (+/- 1 000 000) zwykle przechowywanych w jednym katalogu. Na Mac OS X niektóre błędy zawierały ponad +/- 30 000 plików, więc dzieliłem animację na różne katalogi.

Czy w systemie Ubuntu istnieje ograniczenie liczby plików, które może pomieścić pojedynczy katalog?

H_7
źródło

Odpowiedzi:

32

Ubuntu nie ogranicza rozmiaru katalogu, jest narzucone przez system plików. Każdy plik i katalog jest tak zwanym i-węzłem. Możesz użyć df -ido sprawdzenia liczby używanych i-węzłów i dostępnych dla wszystkich zamontowanych systemów plików.

Właśnie utworzyłem 1 milion i jeden plik bez problemów, ponieważ mój limit i-węzłów dla mojej partycji domowej ext4 50 GB (46 GiB) jest wystarczająco duży.

Użyłem rozszerzenia powłoki do tworzenia plików, w połączeniu z touchnarzędziem:

mkdir test
cd test
touch {0..300000}
touch {300000..600000}
touch {600000..900000}
touch {900000..1000000}

Tworzy to 1000001 plików, które można zweryfikować ls | wc -l. Dlaczego 300000..600000nie 300001..600000? Ponieważ byłem zbyt leniwy, aby umieścić tę 1 na końcu.

df -i wygląda jak:

/dev/sda6            3055616 1133635 1921981   38% /home

Teraz usuń pliki testowe ( cd ..&&rm -f testzajęło to znacznie dłużej, więc używaj rmz nazwami plików):

rm {0..300000}
rm {300000..600000}
rm {600000..900000}
rm {900000..1000000}
cd ..
rmdir f

a liczba używanych i-węzłów spadła natychmiast po usunięciu plików:

/dev/sda6            3055616  133634 2921982    5% /home

Zauważ, że nawet jeśli system plików pozwala na tak dużą liczbę plików, strasznym pomysłem jest przechowywanie tak dużych plików w jednym katalogu. Przynajmniej użyj niektórych podkatalogów o strukturze podobnej do f/i/l/e/filename.ext. Programy często nie oczekują tak dużych ilości plików.

Lekensteyn
źródło
1
ext4to typ systemu plików, a nie rozszerzenie pliku. Nie możesz utworzyć katalogu do edycji w kolejce? Wątpię, czy programy te mogą ładnie działać przy tak dużych ilościach plików.
Lekensteyn,
1
Oczywiście, że mogę. Po prostu wyobrażam sobie problemy, zanim do nich dojdę. Masz rację co do Adobe After Effects, z pewnością się rozbiję, ale nie wątp w facetów z Autodesk, oni tworzą niesamowite fragmenty kodu ... =) wygląda jak przy użyciu Ferrari. Bardzo łatwy do rozbicia, bardzo szybki i potężny, ponieważ jest zablokowany na ziemi. Mam nadzieję, że mój angielski ma sens.
H_7,
1
Rozumiem to. Tak, dokładnie 17.000 reputacji ^^
Lekensteyn
1
Przed usunięciem plików spróbuj otworzyć ten katalog w Nautilusie i zobacz, co się stanie;).
Mario,
1
@bzero Otwórz na to nowe pytanie.
Lekensteyn,