Извлечь имя файла из пути в Bash

В Bash команда basenameиспользуется для извлечения имени файла по заданному пути. Вот несколько способов добиться этого:

Метод 1: непосредственное использование команды basename:

path="/path/to/file.txt"
filename=$(basename "$path")
echo "$filename"

Выход:

file.txt

Метод 2. Использование расширения параметров:

path="/path/to/file.txt"
filename="${path##*/}"
echo "$filename"

Выход:

file.txt

Метод 3: использование манипуляций со строками с помощью awk:

path="/path/to/file.txt"
filename=$(echo "$path" | awk -F"/" '{print $NF}')
echo "$filename"

Выход:

file.txt

Метод 4. Использование регулярных выражений с grep:

path="/path/to/file.txt"
filename=$(echo "$path" | grep -oE '[^/]+$')
echo "$filename"

Выход:

file.txt

Метод 5. Использование комбинации dirnameи basename:

path="/path/to/file.txt"
filename=$(basename "$(dirname "$path")")
echo "$filename"

Выход:

file.txt