1

Мне нужно просмотреть корневой каталог в Linux Mint из команды.

Я старался

sudo cd /root

Там написано, что команда sudo cd не найдена.

cd /root

говорит, что разрешение отказано.

Также мне нужно перечислить файлы, начинающиеся с "abc" внутри корневого каталога. При перечислении файлов я не должен включать подкаталоги /root.

Кто-нибудь может помочь?

2 ответа2

3

Корневой каталог (вся структура каталогов) - «/», а не «/root».

Если вы делаете

sudo cd /

Вы запустите подоболочку, которая изменит каталог на / затем завершит работу. Вы все еще там, где вы были.

Вы можете изучить "/", просто перейдя на него

cd / 

и вы сможете читать файлы, на которые имеет право ваш пользователь или группа. Лучше, чем делать это как суперпользователь ... очень опасно.

Я бы настоятельно рекомендовал вам посмотреть здесь: http://www.tutorialspoint.com/unix/unix-getting-started.htm

3

Прежде всего, корневым каталогом является / , а не /root . /root - домашний каталог пользователя root . Кроме того, вам не нужно sudo чтобы перечислить его содержимое. Просто делать:

ls /

Чтобы вывести список всех файлов (и каталогов), начиная с abc , вы хотите

ls /abc*

Чтобы перейти в корневой каталог, просто запустите cd / .


Команда ls /abc* обрабатывает файлы и папки по-разному. Глоб расширяется вашей оболочкой (bash) до всех файлов и папок, начинающихся с abc . ls перечислит содержимое любых каталогов, которые вы ему предоставите. Например:

$ ls -l
total 4
-rw-r--r-- 1 terdon terdon    0 Jan 23 20:25 dfile.txt
drwxr-xr-x 2 terdon terdon 4096 Jan 23 20:25 dir1
$ ls dir1
-rw-r--r-- 1 terdon terdon 0 Jan 23 20:25 file2.txt

Итак, у меня есть каталог с именем dir1 и файл с именем dfile.txt . Каталог содержит другой файл, file1.txt . Теперь, если я запускаю ls d* , он перечислит файл dfile.txt и содержимое каталога dir1:

$ ls d*
dfile.txt

dir1:
file2.txt

Если вы не хотите, чтобы ls содержимое каталогов, запустите его с опцией -d . Как объяснено в man ls:

   -d, --directory
          list  directory entries instead of contents, and do not derefer‐
          ence symbolic links

Так, например:

$ ls -d d*
dfile.txt  dir1

Чтобы вывести список всех файлов и каталогов, начинающихся с abc в / без списка содержимого каталога, выполните следующее:

$ ls -d /abc*

В качестве альтернативы, если вы хотите только файлы, используйте find:

$ find / -maxdepth 1 -type f -name "abc*"

От man find:

   -maxdepth levels
          Descend at most levels (a non-negative integer) levels of direc‐
          tories below the command line arguments. 
   -name pattern
          Base of  file  name  (the  path  with  the  leading  directories
          removed)  matches  shell  pattern  pattern.
   -type c
          File is of type c:

          d      directory
          f      regular file

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .