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