2013-02-28 5 views
25

Я пытаюсь оценить использование диска для нескольких учетных записей пользователей Unix. Просто, я использую следующую команду:Исключить все отклоненные сообщения с разрешения «du»

du -cBM --max-depth=1 | sort -n 

Но я видел много сообщения об ошибке, как показано ниже. Как я могу исключить все сообщения «Разрешенные отклонения» на дисплее?

du: `./james/.gnome2': Permission denied 

Мой запрос может быть очень похож на следующий список, заменив «найти», чтобы «дю».

How can I exclude all "permission denied" messages from "find"?

Следующая нить не работает. Наверное, я использую bash.

Excluding hidden files from du command output with --exclude, grep -v or sed

ответ

38
du -cBM --max-depth=1 2>/dev/null | sort -n 

или лучше в Баш (просто отфильтровать эту конкретную ошибку, не все, как последний фрагмент кода)

du -cBM --max-depth=1 2> >(grep -v 'Permission denied') | sort -n 
+0

именно то, что я хочу. Спасибо! –

1

2>/DEV/NUL скрывающую только сообщения об ошибках.

команда du всегда пытается запустить каталог. Представьте себе, что у вас есть тысячи каналов?

дю нуждается Eval, если у вас есть одаривать бежать, если нет, следовать со следующей директории ...

0

Я хотел бы использовать что-то сжатое, что исключает только строки, которые вы не хотите видеть. Перенаправить поток ошибок на стандартный вывод, и Grep, чтобы исключить все «отказано» S:

du -cBM --max-depth=1 2>&1 | grep -v 'denied' | sort -n