问题
在使用 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权限,所以就能访问了.