команда du показывает наклонную черту после каталогов?

Простой ответ не, и это возвращается к, по крайней мере, 2005 при выполнении этой en-массы с личинкой затем необходимо все еще смочь указать в параметрах загрузки пути к зеркалу, точно так же, как Вы можете с определением пути к Запускать файлу.

Некоторые блестящие примеры того, как сделать это, могут быть найдены на Инфраструктуре Fedora страницы Wiki, главным образом просто -x "method= должен добиться цели.

6
20.10.2012, 22:44
2 ответа

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

du -ab | while IFS=$'\t' read -r size line; do printf "%s\t%s" $size "$line"; [[ -d $line ]] && printf "/"; echo; done

Это будет работать с любым именем файла, не содержащим новые строки или заканчивающимся вкладкой.

3
27.01.2020, 20:29
  • 1
    Спасибо!, Что [[ -d $line ]] ? –  I'll-Be-Back 20.10.2012, 23:14
  • 2
    @I'll-Be-Back, Если существует и каталог.... –  Alex Chamberlain 20.10.2012, 23:15
  • 3
    @Gilles спасибо за фиксацию. Можно ли думать о чем-нибудь для улучшения производительности больше? –  I'll-Be-Back 21.10.2012, 01:12
  • 4
    @I'll-Be-Back Не без перекомпиляции du. Это должно быть I/O-bound так или иначе. Возможно, изменяя тело цикла на if [[ -d $line ]]; then d=/; else d=; fi; echo -E "$size"$'\t'"$line$d" немного ускорит вещи, если скорость вывода будет ограничивающим фактором, потому что метаданные файла уже находятся в кэше. –  Gilles 'SO- stop being evil' 21.10.2012, 01:22
  • 5
    Как это? du -ab | while IFS=$'\t' read -r size line; if [[ -d $line ]]; then d=/; else d=; fi; echo -E "$size"$'\t'"$line$d"; done –  I'll-Be-Back 21.10.2012, 01:40

Мой любимый прием с GNU du.

du -chs -- */ *

Так как du исключает дубликаты на параметрах командной строки, он работает, и распечатайте наклонную черту автоматически, так как Вы предоставили наклонную черту для папки.

2
27.01.2020, 20:29
  • 1
    Это не работает как есть на каталоги, которые не являются на верхнем уровне. Это действительно работает, если Вы изменяетесь */ кому: **/*/ (или **/, В зависимости от Вашей оболочки) (после того, как включение globstar опция в ksh или ударе), но это может быть медленнее из-за двух рекурсивных обходов. Кроме того, вывод не будет отсортирован в разумном порядке. –  Gilles 'SO- stop being evil' 21.10.2012, 23:20
  • 2
    Это может быть настоящий пожиратель ресурсов памяти, просто вытянулся 70%-е использование мадам на моей машине на 8 ГБ для du **/'ing мой корневой каталог... –  jippie 21.10.2012, 23:55

Теги

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