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 также перепутана?

0
задан 23 September 2014 в 18:05
1 ответ

Ваша оболочка попытается расширить подстановочный знак * перед повышением привилегий команды ls .
Поскольку у вас, как у обычного пользователя, недостаточно прав для чтения / var / log / apache2 , расширение не удастся.

Затем * .log будет передан в sudo , но поскольку sudo не выполняет подстановку (это функция оболочки), ls снова завершится ошибкой, поскольку нет файла с именем *. log

. Обход будет следующим:

sudo sh -c 'ls /var/log/apache2/*.log' 
5
ответ дан 4 December 2019 в 11:27

Теги

Похожие вопросы