man mke2fs
состояния
Допустимые значения размера блока 1024, 2048 и 4 096 байтов за блок
Если мы взглянули к fs/block_dev.c
мы могли найти следующее:
int set_blocksize(struct block_device *bdev, int size)
{
/* Size must be a power of two, and between 512 and PAGE_SIZE */
if (size > PAGE_SIZE || size < 512 || !is_power_of_2(size))
return -EINVAL;
И наконец мы можем определить PAGE_SIZE:
# getconf -a| grep PAGE_SIZE
PAGE_SIZE 4096
Предположим, что у вас есть файл с именем вход
, вы хотите удалить все строки, начинающиеся с #
во входе
. Вы можете получить, что все строки не начинаются с #
, используя:
grep -v '^#' input
Но как внести изменения во вход ? Со стандартным сундуком POSIX вам нужно использовать временный файл, что-то вроде:
grep -v '^#' input >/tmp/input.tmp
mv /tmp/input.tmp ./input
с перенаправлением оболочки:
grep -v '^#' input >input
усечет вход
перед тем, как вы будете читать из него.
С помощью губки
вы можете:
grep -v '^#' input | sponge input
сама домашняя страница moreutils документирует типичный случай использования:
sed "s/root/toor/" /etc/passwd | grep -v joey | sponge /etc/passwd
Здесь /etc/passwd и записывается, и читается, и изменяется. Не нажимая stdin перед записью, /etc/passwd может быть поврежден (так как файл изменился во время чтения).