Почему команда ls корневого каталога суперпользователя Linux не отображает все файлы?

Почему команда ls корневого каталога суперпользователя Linux не отображает все файлы?

Если я войду в систему, а затем перейду к своему root-пользователю через:

sudo su -

Теперь я в корневом каталоге. Я могу отобразить список файлов и каталогов через ls. Однако довольно много каталогов там, похоже, отсутствуют. Например, я могу:

cd /svr/www

и попадают в каталог www. svrКаталог не отображается, когда я ввожу lsкоманду от имени root, и его нет ни в одном из показанных каталогов.

Что я упускаю?

решение1

После команды, sudo su -я думаю, вы обнаружите, что находитесь в домашнем каталоге root, /rootа не в корневом каталоге /. Поэтому lsне будет отображаться /srv. Я предлагаю вам использовать pwdдля проверки того, в какой папке вы находитесь.

решение2

Если вы находитесь в /каталоге и вводите ls, вынетсм. "рекурсивные" подкаталоги. Вы увидите только те каталоги, которые являются прямыми потомками текущего каталога. Поэтому, чтобы увидеть, /srv/wwwвам сначала нужно будет cd /srv, а затем ls.

Существует такая вещь, как рекурсия ls; однако, если вам нужны полные пути, findэто лучшая альтернатива.

Видетьэтот вопрос StackOverflowв котором уже рассматривалась тема рекурсивного листинга файлов/каталогов.

Связанный контент