2013-02-28 65 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 

或在bash更好(只是篩選出這個特定的錯誤,不是所有的像上段)

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

正是我想要的。謝謝! – 2013-03-01 09:00:34

1

2>的/ dev/NUL隱藏唯一的錯誤消息。

du命令總是嘗試運行目錄。想象一下,你有成千上萬的代表作?

都需要EVAL,如果你有persmission運行如果沒有,請與下一個目錄,可...

0

我會用簡潔的東西用來排除僅行你不希望看到的。重定向錯誤輸出到標準輸出,和grep排除所有「拒絕」 S:

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