LINUX.ORG.RU

ls vs. du - странности


0

0

Качаю файлы через mldonkey - делаю в директории temp:

~ ls -al
total 105288
drwxr-xr-x    3 p2p      p2p          4096 May  7 16:43 .
drwxr-xr-x    9 p2p      p2p          4096 May  9 02:13 ..
drwxrwxr-x    4 p2p      p2p          4096 May  7 16:24 BT-JZRVHNQZMIEGGII74JKYDDQ2O2MDH74N
-rw-rw-r--    1 p2p      p2p      337587966 May  9 02:06 BT-KTGXSERNPQBDYYTEQHMGWZAO7M4XRHJ5
-rw-rw-r--    1 p2p      p2p      73960668 May  8 17:09 BT-YTJVLWLZ7QSD6CI2WVEXCWVJ3ZPBVEGN
-rw-rw-r--    1 p2p      p2p      95090688 May  9 01:01 urn_ed2k_7492BE5E6C627F09ACD2C6FE1DA0AC0D

Но

~ du   
4       ./BT-JZRVHNQZMIEGGII74JKYDDQ2O2MDH74N/CD I
4       ./BT-JZRVHNQZMIEGGII74JKYDDQ2O2MDH74N/CD II
12      ./BT-JZRVHNQZMIEGGII74JKYDDQ2O2MDH74N
105292  .
anonymous

ls для каталога считает размер _списка_ объектов, находящихся в каталоге. du считает размер всех объектов, находящихся в каталоге и рекурсивно в подкаталогах.

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

> ls для каталога считает размер _списка_ объектов, находящихся в каталоге. du считает размер всех объектов, находящихся в каталоге и рекурсивно в подкаталогах.

Не понял чем отличается размер _списка_ объектов от размер всех объектов. По поводу того что du считает рекурсивно - это понятно - но у меня ls - выдаёт 337587966+73960668+95090688 ≈ 500000kb что существенно больше чем 100000kb выдаваеммые du.

anonymous
()

а где тут _борьба_ du с ls??? было же vs написано в теме, а тут фигня.. гони борьбу!!!

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

> 500000kb что существенно больше чем 100000kb выдаваеммые du.

а с чего ты взял, что du выдает тебе размер в kb?

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

>Не понял чем отличается размер _списка_ объектов от размер всех объектов.

Список объектов - это то, что ты получаешь командой ls и её параметрами. Каталог в файловой системе содежит информацию об объектах в нём (названия и иноде файлов, атрибуты, принадлежность пользователю/группе, права). Содержимое объектов - то, что ты получаешь командой cat.

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

> а с чего ты взял, что du выдает тебе размер в kb?

Из man du:
-b, --bytes
Выдавать размеры в байтах вместо килобайтов.

> Список объектов - это то, что ты получаешь командой ls и её параметрами. Каталог в файловой системе содежит информацию об объектах в нём (названия и иноде файлов, атрибуты, принадлежность пользователю/группе, права). Содержимое объектов - то, что ты получаешь командой cat.

Ну вот я делаю:
~ ls -al urn_ed2k_7492BE5E6C627F09ACD2C6FE1DA0AC0D 
-rw-rw-r--    1 p2p      p2p      95090688 May  9 13:29 urn_ed2k_7492BE5E6C627F09ACD2C6FE1DA0AC0D
~ du -b urn_ed2k_7492BE5E6C627F09ACD2C6FE1DA0AC0D 
24690688        urn_ed2k_7492BE5E6C627F09ACD2C6FE1DA0AC0D

Так почему размер различается. Т. е. 95090688>24690688. Если у меня ls показывает размер файла 100mb, то он и должен занимать 100mb на диске, a не 20mb.

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