sudo bash -c " du /root/* -sh" 與 sudo du /roo/* -sh

sudo bash -c " du /root/* -sh" 與 sudo du /root/* -sh

問題

在使用 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權限,所以就能訪問了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章