Каждый файл на моем внешнем SSD занимает не менее 1 МБ, независимо от его размера. Как я могу это изменить?

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

Использование sed:

ssh remotehost cat luckynumbers |
sed -e '2 { w luckynumbers.txt
            d
          }' |
decoder

Использование awk:

ssh remotehost cat luckynumbers |
awk 'NR == 2 { print > "luckynumbers.txt" }
     NR != 2 { print }' |
decoder

Обратите внимание, что если последняя строка ввода не заканчивается новой строкой, awk, вероятно, добавит ее.

0
16.05.2020, 17:39
1 ответ

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

Для Linux тип файловой системы, указанный в таблице разделов, ничего не значит; тип определяется автоматически путем проверки данных внутри раздела. Но для других операционных систем может быть полезно правильное указание типа файловой системы в таблице разделов.

fuseblkуказывает, что файловая система обрабатывается драйвером файловой системы пространства пользователя FUSE -; к сожалению, драйверы FUSE существуют как для NTFS (ntfs-3g), так и для exFAT, поэтому здесь они не очень полезны. По крайней мере, в Debian/Ubuntu вы можете запустить pgrep -a mount:, если вывод выглядит как

<process ID> /sbin/mount.ntfs-3g /dev/sda1 <mountpoint of the filesystem> -o <some options>

, то он обрабатывается драйвером ntfs-3gи, очевидно, является NTFS. Строка вывода для exFAT должна включать /sbin/mount.exfat-fuseили что-то подобное (У меня сейчас нет реальной файловой системы exFAT для тестирования ).

Сказав это, даже exFAT не должен использовать размер единицы распределения 1 МБ, если это не указано во время создания файловой системы:согласно Microsoft , размер единицы распределения exFAT по умолчанию для диска более 32 ГБ должно быть 128 КБ.

1
28.04.2021, 23:13

Теги

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