LINUX.ORG.RU

Почему размер копии директории отличается от оригинала на 1 килобайт?

 


0

2

Копировал директорию из одной партиции в другую, с одинаковыми файловыми системами (ext4), командой

cp -r -i -p -v /opt/papka1/ ~/papka2/ 

После копирования проверил размер папок

 whoami@whoami:~$ du -cs ~/papka2/mydirect /opt/papka2/
26488376	/home/whoami/papka2/
26488384	/opt/papka1/
52976760	итого 
Кто-нибудь знает почему разный размер?


Где ты видишь 1кб? И вообще, кто етбя научил так копировать?

Помимо того что ты не целиком копируешь, отличие может быть в том, что раньше в 1 каталоге было больше файлов, чем сейчас.

ps мамку себе скопируй, изверг.

anonymous
()

Кто-нибудь знает почему разный размер?

Потому что в ext4 размер директорий не уменьшается. Если создать в них много файлов, а потом большую часть удалить, директория всё ещё будет занимать больше места. После копирования такой директории занимаемое копией место будет меньше.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

Вроде ничего не удалял, да и файлов, с размером меньше 200 кб нет. Тут в чем-то ином дело. Интересно, mkfs и fdisk работают одинаково во всех версиях и на всех ядрах?

yotow
() автор топика
Ответ на: комментарий от anonymous

Как надо было правильно? Если не 1 кб, то сколько?

yotow
() автор топика
Ответ на: комментарий от yotow

Вроде ничего не удалял

В исходных директориях никогда не удалялись файлы? Ты их только создавал?

i-rinat ★★★★★
()
Ответ на: комментарий от dk-

Это баг или фича?

unt1tled > а это что за тема такая?

Это просто свойство такое. Размер директорий не уменьшается во время работы. Можно уменьшить с помощью параметра -D при вызове fsck.ext4.

О причинах только гадать можно. Часто файлы создаются и удаляются, нет смысла выбрасывать уже выделенное место. Перепаковка директории на каждое создание-удаление может замедлить это самое создание-удаление. Хотя с другой стороны, когда директория разрастается, поиск в ней может стать очень долгим, особенно на жёстких дисках. Даже если в ней сейчас один-два файла.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Тоесть если я рипану 2 блурея в диру и создам там info.txt, потом скопирую в блуреи в другое место, та дира будет занимать 100 гигов с 1 текстовым файлом?

unt1tled ★★★★
()
Ответ на: комментарий от unt1tled

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

ArcFi
()
Ответ на: комментарий от unt1tled

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

kostik87 ★★★★★
()
Ответ на: комментарий от unt1tled

Ты называешь размером директории её размер плюс размер всех файлов и директорий в ней, рекурсивно. А я имел в виду размер самой директории.

Директория — это специальный файл, в котором в особом формате хранится список имён файлов в ней. И ещё всякая вспомогательная информация типа времени доступа, прав, владельца и тому подобного.

i-rinat ★★★★★
()
Ответ на: комментарий от unt1tled

Нет, речь идёт непосредственно о размере файла типа каталог и проблема имеет место при создании 100500 файлов внутри него и их последующем удалении.

ArcFi
()
Ответ на: комментарий от i-rinat

Тоесть «размер самой директории» это размер файла с 3 записями в нем (в моем примере)?

unt1tled ★★★★
()

почему разный размер?

Потому что du показывает не размер непосредственно данных, а сколько места они занимают на файловой системе с учётом метаданных и фрагментации.

ArcFi
()

в mc CTRL+Пробел нажми и сравнивай. Нафиг нам твоё du?

buratino ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.