Если я войду в систему, а затем перейду к своему 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в котором уже рассматривалась тема рекурсивного листинга файлов/каталогов.