За замовчуванням duкожен файл буде рахувати лише один раз, якщо він пов'язаний кілька разів. Якщо ви запускаєте, du -L barвін рахуватиме файл, оскільки він доходить до нього лише один раз. Однак, якщо ви запускаєте, du -L *він рахуватиме його лише в перший раз, коли він його побачить. Наприклад:
$ du -L foo bar
16K foo
4.0K bar
$ du -L bar foo
16K bar
4.0K foo
Зауважте, що заміна порядку аргументів змінює, яка папка отримує звіт як 16K.
Ви можете змусити duрахувати файл двічі, передавши -lпараметр.
Редагувати:
Символічні посилання - це особливий вид файлу, і потрібен додатковий крок для переходу за посиланням. duне буде переходити до символьних посилань, якщо -Lпараметр не включений.
З іншого боку, посилання - це один файл, який існує у двох (або більше) папках. duімовірно відстежує, які файли він бачив за номером inode, щоб уникнути їх підрахунку двічі. -lвідключає таку поведінку.
Так, щойно -L, воно перейде за символічним посиланням, але якщо цільовий файл має номер inode, він вже бачив, він не буде рахуватися повторно. Щойно -lвін буде рахувати дублікати жорстких посилань, але не переходитиме до символічних посилань.
Якщо ви користуєтесь разом -lі -Lразом, вони будуть дотримуватися символічних посилань, а також дозволять рахувати цільові файли більше разів.
duхочеться грати розумно, але якщо запуститиdf -a -L bar fooрезультат, то це дуже неправильно (підрахунок 16K у барі залишає foo порожнім).