有人可以向我解释这个吗?
[rabdelaz@Linux_Desktop:/etc/apache2]$sudo ls /var/log/apache2/*.log ls: cannot access /var/log/apache2/*.log: No such file or directory [rabdelaz@Linux_Desktop:/etc/apache2]$sudo ls /var/log/apache2/ access.log error.log.1 error.log.11.gz error.log.13.gz error.log.2.gz error.log.4.gz error.log.6.gz error.log.8.gz other_vhosts_access.log error.log error.log.10.gz error.log.12.gz error.log.14.gz error.log.3.gz error.log.5.gz error.log.7.gz error.log.9.gz ssl_access.log
显然有这样的文件或目录。 我很困惑。 Ubuntu也困惑?
在提升ls命令的权限之前,shell会尝试扩展*通配符。
因为作为常规用户,您没有足够的权限来读取/var/log/apache2扩展将会失败。
然后*.log将被传递给sudo ,但是由于sudo没有执行globbing(这是一个shell函数), ls将再次失败,因为没有名为*.log文件
规避将是:
sudo sh -c 'ls /var/log/apache2/*.log'