Поиск по сайту:

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


На этой странице

  1. Команда базового имени Linux
  2. Q1. Как работает команда basename?
  3. Вопрос 2. Может ли basename обрабатывать несколько входных данных?
  4. Вопрос 3. Как также сделать расширение файла полосы базового имени?
  5. Q4. Как сделать так, чтобы вывод каждой строки заканчивался на NUL?
  6. Заключение

Иногда при работе в командной строке (особенно при работе со сценариями оболочки) вас может интересовать только имя файла, но вам доступен полный путь к файлу. Таким образом, требование состоит в том, чтобы удалить компонент каталога пути. Вы будете рады узнать, что существует команда 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 не очень многофункциональная команда — предоставляемые ею параметры ограничены, и большинство из них обсуждались здесь, в этом руководстве. После того, как вы закончите практиковать их, перейдите на справочную страницу инструментов, чтобы узнать больше об этом.