Как восстановить, когда счет INODE EXT4 Superblock сбрасывается до 0

Если все, что вам нужно, это добавить текст в последнюю строку, это очень просто с помощью sed. Замените $ (сопоставление с образцом в конце строки) текстом, который вы хотите добавить, только в строках в диапазоне $ (что означает последнюю строку).

sed '$ s/$/ and Linux/' file.new &&
mv file.new file

, которое в Linux можно сократить до

sed -i '$ s/$/ and Linux/' file

. Если вы хотите удалить последний байт в файле, Linux (точнее, GNU coreutils) предлагает команду truncate , которая упрощает эту задачу.

truncate -s -1 file

В POSIX это можно сделать с помощью dd . Сначала определите длину файла, а затем обрежьте ее на один байт меньше.

length=$(wc -c 

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

length=$(wc -c 

2
10.10.2018, 14:51
1 ответ

Вероятно, лучший способ справиться с этим — использовать команду debugfs ssvдля редактирования суперблока, чтобы уменьшить количество блоков и индексов на значение одной группы элементов, а затем запустить e2fsck. Это, по сути, отменяет последнюю часть изменения размера, позволяя вам снова использовать файловую систему.

0
27.01.2020, 22:29

Теги

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