Как использовать bash для проверки ограничений каталога файловой системы

Мне нужно проверить, сколько каталогов и файлов я могу создать в файловой системе (сетевые и локальные (usb) диски). Теперь я использую эту строку bash:

for i in {0..999999}; do mkdir -p $i; pushd $i; done

Я знаю, что это, вероятно, можно сделать лучше, и я хотел бы знать, как это сделать. (в bash, не слишком сложно)


person Community    schedule 25.11.2010    source источник
comment
Не уверен насчет pushd, но при использовании метода cd ограничений нет (кроме места на диске).   -  person Douglas Leeder    schedule 25.11.2010
comment
В общем, использование {START..END} с большими диапазонами — плохая идея: bash расширяет их, поэтому будет использовать много оперативной памяти.   -  person tokland    schedule 25.11.2010
comment
Неважно, у меня 8 Гб на этом ящике...   -  person    schedule 25.11.2010


Ответы (3)


while (true); do
  mkdir a
  cd a
done

Создает что-то вроде ./a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/...

person thejh    schedule 25.11.2010
comment
Я действительно не понимаю, чем это лучше, чем решение спрашивающего, кроме использования cd вместо pushd. - person Ignacio Vazquez-Abrams; 25.11.2010
comment
@Ignacio Vazquez-Abrams: не цикл for, а цикл while. Я думаю, что это немного чище. - person thejh; 25.11.2010
comment
За исключением того, что теперь он может работать вечно, в результате чего на жестком диске заканчиваются иноды, младенцы плачут, а котята умирают. - person Ignacio Vazquez-Abrams; 25.11.2010
comment
@ Игнасио Васкес-Абрамс: pushd должен помнить все каталоги, в которых он находился. Поэтому ему не хватит памяти, прежде чем он достигнет каких-либо ограничений на диске. - person Douglas Leeder; 25.11.2010
comment
ОП хочет найти предел, и единственный способ сделать это - достичь предела :-). - person Douglas Leeder; 25.11.2010
comment
@ Игнасио Васкес-Абрамс: это то, что хочет сделать ОП. :) - person thejh; 25.11.2010
comment
@Ignacio Vazquez-Abrams: Поскольку он просто хочет заполнить сетевой диск бесполезными каталогами, пока на нем не закончится место, все должно быть в порядке ... или что-то в этом роде;) - person thejh; 25.11.2010

Любой файл/каталог представлен с помощью inode, взгляните на df -i, и вы получите общее представление о количестве файлов/каталогов, которые вы можете создать/использовать.

person Anders    schedule 25.11.2010

Метод cd на самом деле работает лучше и быстрее ... Моя флешка ext4 начинает издеваться примерно над 1040 папками ...

И сетевая часть предназначена для проверки моей конфигурации wins2k3, но мой виртуальный бокс в данный момент не работает, потому что я думаю, что что-то напортачил...

person Community    schedule 25.11.2010