Команды Linux · 3 min read · Dec 23, 2025

Учебник по команде namei в Linux для начинающих (5 примеров)

На командной строке Linux вы работаете с несколькими типами файлов, например, директориями, символическими ссылками и тому подобным. Иногда требуется узнать больше о отдельных элементах в пути - какой тип файла, кто его владелец и многое другое. К счастью, есть встроенная утилита командной строки Linux - называемая namei - которая позволяет вам получить эту информацию.

В этом учебнике мы обсудим основы namei, используя несколько простых для понимания примеров. Но прежде чем мы начнем, стоит упомянуть, что все примеры здесь были протестированы на машине с Ubuntu 18.04 LTS.

Команда namei в Linux

Команда namei в Linux следует за путем до тех пор, пока не будет найден конечный пункт. Вот ее синтаксис:

namei [options] pathname...

А вот что говорит страница man об этом инструменте:

namei интерпретирует свои аргументы как пути к любому типу файла Unix  
       (символические ссылки, файлы, директории и так далее). namei затем следует  
       каждому пути до тех пор, пока не будет найден конечный пункт  
       (файл, директория, узел устройства и т.д.). Если он находит символическую ссылку, он показывает ссылку и начинает  
       следовать за ней, отступая вывод, чтобы показать контекст.

       Эта программа полезна для поиска проблем с "слишком большим количеством уровней символических ссылок".

Ниже приведены некоторые примеры в формате вопросов и ответов, которые должны дать вам хорошее представление о том, как работает команда namei.

Вопрос 1. Как использовать namei?

Основное использование довольно простое, все, что вам нужно сделать, это выполнить ‘namei’, за которым следует путь командной строки.

Например:

namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

А вот вывод, который произвела эта команда:

f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png  
 d /  
 d home  
 d himanshu  
 d Downloads  
 d HTF-review  
 d Nodejs-Docker  
 - 1.png

Страница man инструмента подробно описывает, как интерпретировать вывод.

Для каждой строки вывода namei использует следующие символы для определения типа найденного файла:  
          f: = путь, который в данный момент разрешается  
           d = директория  
           l = символическая ссылка (выводится как сама ссылка, так и ее содержимое)  
           s = сокет  
           b = блочное устройство  
           c = символьное устройство  
           p = FIFO (именованный канал)  
           - = обычный файл  
           ? = ошибка какого-то рода

Таким образом, вы можете видеть, что команда namei разбила все элементы в пути, который мы ей предоставили, информируя нас о их типе.

Вопрос 2. Как вертикально выровнять вывод namei?

Это можно сделать, используя параметр командной строки -v. Например:

namei -v /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

А вот вывод:

f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png  
 d /  
 d home  
 d himanshu  
 d Downloads  
 d HTF-review  
 d Nodejs-Docker  
 - 1.png

Если вы сравните это с выводом, показанным в предыдущем разделе, вы увидите, что на этот раз есть вертикальное выравнивание.

Вопрос 3. Как заставить namei показывать информацию о владельце и группе?

Это можно сделать, используя параметр командной строки -o. Например:

namei -o /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

Вот вывод:

f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png  
 d root     root     /  
 d root     root     home  
 d himanshu himanshu himanshu  
 d himanshu himanshu Downloads  
 d himanshu himanshu HTF-review  
 d himanshu himanshu Nodejs-Docker  
 - himanshu himanshu 1.png

Таким образом, вы можете видеть, что информация о владении для каждого файла/директории отображается в выводе.

Вопрос 4. Как заставить namei использовать формат вывода длинного списка?

Это можно сделать, используя параметр командной строки -l.

namei -l /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png

Вот вывод:

f: /home/himanshu/Downloads/HTF-review/Nodejs-Docker/1.png  
drwxr-xr-x root     root     /  
drwxr-xr-x root     root     home  
drwxr-xr-x himanshu himanshu himanshu  
drwxr-xr-x himanshu himanshu Downloads  
drwxr-xr-x himanshu himanshu HTF-review  
drwxr-xr-x himanshu himanshu Nodejs-Docker  
-rw-rw-r-- himanshu himanshu 1.png

Таким образом, вы можете видеть, что вывод, похожий на вывод команды ls, создается командой namei.

Вопрос 5. Как namei работает с символическими ссылками?

Как уже было объяснено в начале, команда namei по умолчанию следует за символической ссылкой. Например, на моей системе ‘link1’ является символической ссылкой на файл ‘file1’, поэтому я передал путь ‘link1’ в namei следующим образом:

namei /home/himanshu/link1

Затем был получен следующий вывод:

f: /home/himanshu/link1  
 d /  
 d home  
 d himanshu  
 l link1 -> file1  
   - file1

Таким образом, вы можете видеть, что команда namei четко показала, каким типом файла является ‘file1’. Однако, если вы хотите, вы можете заставить инструмент не следовать за символическими ссылками, что можно сделать, используя параметр командной строки -n.

namei -n /home/himanshu/link1

Вот вывод в этом случае:

f: /home/himanshu/link1  
 d /  
 d home  
 d himanshu  
 l link1 -> file1

Таким образом, вы можете видеть, что инструмент не следовал за символической ссылкой в этом случае.

Заключение

Команда namei особенно полезна в случае вложенных символических ссылок в пути. Здесь, в этом учебнике, мы обсудили большинство параметров командной строки, которые предлагает этот инструмент. Как только вы закончите практиковаться с ними, перейдите на страницу man инструмента, чтобы узнать больше о нем.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.