Может ли кто-нибудь объяснить этот изменяющийся вывод `du`?

Просто споткнулся о странный случай du. Ввод аргументов одним способом дает:

$ du -s htdocs/.git/ feuerkraft/.git/ media/.git/
40564   htdocs/.git/
40740   feuerkraft/.git/
204 media/.git/

Помещение их в другом порядке изменяет размер последнего каталога:

$ du -s media/.git/ htdocs/.git/ feuerkraft/.git/ 
40696   media/.git/
40564   htdocs/.git/
248 feuerkraft/.git/

Все должны быть регулярными каталогами: [!d2 ]

$ ls -l */.git -d -i
4891918 drwxrwxr-x 1 ingo ingo 138 Mar 28 08:41 feuerkraft/.git
4892896 drwxrwxr-x 1 ingo ingo 138 Mar 28 08:44 htdocs/.git
4893874 drwxrwxr-x 1 ingo ingo 138 Mar 28 08:42 media/.git

Выполнение этого вручную дает:

$ for i in htdocs/.git/ feuerkraft/.git/ media/.git/; do du -s "${i}"; done
40564   htdocs/.git/
40740   feuerkraft/.git/
40696   media/.git/

Когда я копирую каталог с cp -axv, проблема остается, если я копирую каталог с cp -rxv, он исчезает. [!d4 ]

Копаем глубже:

$ du -s feuerkraft/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack media/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack htdocs/.git/objects/pack/pack-31a80589fbb132827d19b718c07aba1aa6bb9c02.pack  | wc -l
2
$ ls feuerkraft/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack media/.git/objects/pack/pack-26b69bdec4b3fd894bf7984d23e1938b522e6d53.pack htdocs/.git/objects/pack/pack-31a80589fbb132827d19b718c07aba1aa6bb9c02.pack  | wc -l 
3

du перечисляет только 2 файла, если указаны три, ls перечисляет 3.

Файловая система btrfs. Это ошибка или что-то с сжатием / копированием на запись или что-то еще?

1
задан 24 April 2015 в 17:16

0 ответов

Другие вопросы по тегам:

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