Как освободить использование Inode?

Как я понимаю, ваша проблема в том, что простые массивы не имеют переменного размера, то есть, если они установлены на определенную длину, новые значения не могут быть введены.

Пример: если у вас есть массив длины 4, вы не можете хранить что-либо с индексом 4 или выше.

Мой предпочтительный способ решения этой проблемы - использование ArrayLists.

Но вы также можете каждый раз создавать новый массив:

//stores history
if(choice != 4){
    String temp = new String[hist.length];
    for(int x = 0; x < hist.length; x++){
        temp[x] = hist[x];
    }
    temp[hist.length] = menu[choice - 1];
    hist = temp;
}

Вы также, вероятно, должны сделать это, если (choice < 4) {... Так как это проверит, если выбор меньше 4 и не, если это просто не 4.

248
задан Pooja Jhadhav 30 March 2018 в 12:27
поделиться

1 ответ

Для диска довольно легко иметь большое количество inodes, используемого, даже если диск не очень полон.

inode выделяется файлу так, если у Вас будет огромное количество файлов, весь 1 байт каждый, то у Вас закончится inodes задолго до того, как у Вас заканчивается диск.

также возможно, что удаление файлов не уменьшит количество inode, если файлы будут иметь несколько жестких ссылок. Как я сказал, inodes принадлежат файлу, не запись каталога. Если файл будет иметь две записи каталога, связанные с ним, то удаляя каждый не освободит inode.

Кроме того, можно удалить запись каталога, но, если рабочий процесс все еще имеет открытый файл, inode не будет освобожден.

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

, Если Вы, это и Вы все еще имеет проблему, сообщило нам.

Между прочим, при поиске каталогов, которые содержат много файлов, этот сценарий может помочь:

#!/bin/bash
# count_em - count files in all subdirectories under current directory.
echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$
chmod 700 /tmp/count_em_$
find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$ | sort -n
rm -f /tmp/count_em_$
160
ответ дан Community 23 November 2019 в 03:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: