Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Команда namei для начинающих

Оригинал: Linux namei Command Tutorial for Beginners (5 Examples)
Автор: Himanshu Arora
Дата публикации: 10 сентября 2018 года
Перевод: А. Кривошей
Дата перевода: май 2019 г.

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

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

Команда namei

Команда namei в Linux следует по пути, пока не будет найдена конечная точка. Ниже приводится ее синтаксис:

namei [options] pathname...

И вот что об этом говорит man-страница утилиты:

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

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

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

Q1. Как использовать 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-cтраница утилиты подробно описывает, как интерпретировать вывод.

Для каждой строки вывода namei использует следующие символы для определения типа найденного файла:

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

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

Q2. Как выровнять вертикально вывод 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

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

Q3. Как заставить 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

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

Q4. Как заставить 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.

Q5. Как 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 особенно полезна в случае наличия в пути символических ссылок. Здесь, в этом руководстве, мы обсудили большинство параметров командной строки, предлагаемых этой утилитой.