Учебное пособие по командам базового имени Linux для начинающих (с примерами)
На этой странице
- Команда базового имени Linux
- Q1. Как работает команда basename?
- Вопрос 2. Может ли basename обрабатывать несколько входных данных?
- Вопрос 3. Как также сделать расширение файла полосы базового имени?
- Q4. Как сделать так, чтобы вывод каждой строки заканчивался на NUL?
- Заключение
Иногда при работе в командной строке (особенно при работе со сценариями оболочки) вас может интересовать только имя файла, но вам доступен полный путь к файлу. Таким образом, требование состоит в том, чтобы удалить компонент каталога пути. Вы будете рады узнать, что существует команда basename, которая выполняет эту работу.
В этом уроке мы обсудим основы базового имени, используя несколько простых для понимания примеров. Но прежде чем мы перейдем к этому, стоит упомянуть, что все приведенные здесь примеры были протестированы на компьютере с Ubuntu 16.04 LTS.
Команда базового имени Linux
Команда basename позволяет вам удалять компоненты из имен файлов, которые не требуются. Ниже приведен синтаксис инструментов:
basename NAME [SUFFIX]
basename OPTION... NAME...
А вот что об этом говорит справочная страница:
basename - strip directory and suffix from filenames
Print NAME with any leading directory components removed. If specified, also remove a trailing
SUFFIX.
Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам хорошее представление о том, как работает команда basename.
Q1. Как работает команда basename?
По умолчанию, если вы запускаете команду basename с полным путем к файлу в качестве входных данных, команда возвращает имя файла на выходе. Например, когда я выполнил следующую команду:
basename /home/himanshu/Downloads/analytics.pdf
Я получил следующий вывод:
analytics.pdf
Q2. Может ли basename обрабатывать несколько входных данных?
Да, оно может. Но чтобы это произошло, вам нужно использовать параметр командной строки -a. Например, когда я выполнил следующую команду:
basename -a /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png
И вот что я получил:
analytics.pdf
test.png
Q3. Как также сделать расширение файла полосы базового имени?
Иногда вам может понадобиться получить только имя файла, но не его расширение. Ну, это можно сделать с помощью параметра командной строки -s (который требует, чтобы вы передали суффикс в качестве входных данных).
Например, следующая команда:
basename -s .pdf /home/himanshu/Downloads/analytics.pdf
произвел этот вывод:
analytics
Q4. Как сделать так, чтобы вывод каждой строки заканчивался на NUL?
По умолчанию в качестве разделителя в выводе используется символ новой строки. Однако, если вы хотите, вы можете заставить базовое имя использовать NUL в качестве разделителя. Это можно сделать с помощью параметра командной строки -z.
Например:
basename -az /home/himanshu/Downloads/analytics.pdf /home/himanshu/Pictures/test.png
И вот вывод:
analytics.pdftest.png
Таким образом, вы не видите здесь символ NUL. Для этого вам нужно перенаправить вывод в файл, а затем открыть файл в редакторе, таком как vim. Вот что показал vim:
Заключение
Как видите, basename не очень многофункциональная команда — предоставляемые ею параметры ограничены, и большинство из них обсуждались здесь, в этом руководстве. После того, как вы закончите практиковать их, перейдите на справочную страницу инструментов, чтобы узнать больше об этом.