問題
在使用 sudo du /root/* -sh
時,出現以下提示:
sudo du /root/* -sh
du: cannot access '/root/*': No such file or directory
解決
用以下命令即可
sudo bash -c "du /root/* -sh"
原因
! i/o 操作是在sudo 之前就發生了. 當執行第一條語句時,需要去讀 /root下的所有內容,而當前用戶並沒有權限,可以用命令驗證一下:
sudo ls /root -ld
drwx------ 12 root root 4096 12月 12 17:30 /root
可以看到,/root 只允許root用戶訪問. 其它用戶無法讀到root 目錄下內容,所有想讀取 /root/* 時返回的是空.
如果執行第二條語句,則因爲先給了root權限,所以就能訪問了.