liunx bash эхо 4096 байт в файл, файл, используя 8 байт на диске? - PullRequest
1 голос
/ 18 апреля 2020

когда я использую bash для записи временного тестового файла на терминале liunx.

echo text_content>file1

, если задана длина text_content 4096 char (random char из [aZ]) long. В результате файл file1 заканчивается использованием двух блоков 4K. и один индекс.

test@instance-7:~/notes/rust$ du -csh file1
8.0K    file1
8.0K    totaldu

Но почему он использовал два блока 4K? Я имею в виду, разве для этого не достаточно одного блока 4K?

если я установил длину text_content длиной 4095 символов, он использовал бы только один блок 4K.

почему он использует больше блоков для этого нужно? или я что-то упустил?

вот некоторая информация о диске для моей машины liunx.

test@instance-7:~/notes/rust$ sudo fdisk -l /dev/sda

Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: PersistentDisk  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gptDisk identifier: 35BD657D-931E-497E-A86C-D3D7C4F6BD2A

1 Ответ

0 голосов
/ 18 апреля 2020

Попробуйте этот эксперимент:

  • напишите cat > file1 и нажмите Введите ,
  • , затем введите this, а затем нажмите Ctrl-D дважды без нажатия Введите сначала ;
  • напишите cat > file2 и нажмите Введите,
  • , затем напишите this, и затем нажмите Введите , а затем Ctrl-D .
  • , наконец, выполните diff file1 file2 и ls -l file[12]
...