Назад | Перейти на главную страницу

ls показывает "нет такого файла или каталога"

Не мог бы кто-нибудь объяснить мне это?

[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'