Кто-то мог объяснить это мне?
[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
.
Поскольку у вас, как у обычного пользователя, недостаточно прав для чтения / var / log / apache2
, расширение не удастся.
Затем * .log
будет передан в sudo
, но поскольку sudo
не выполняет подстановку (это функция оболочки), ls
снова завершится ошибкой, поскольку нет файла с именем *. log
. Обход будет следующим:
sudo sh -c 'ls /var/log/apache2/*.log'