Не мог бы кто-нибудь объяснить мне это?
[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'