Как получить только конечное имя базового файла в структуре каталогов с помощью сценария оболочки (bash) или команды Linux

У меня есть такая структура каталогов

  • MainDIR/ dir2 / b.txt

  • MainDIR/ dir1/a.txt

Я хочу получить только базовые имена файлов, такие как a.txt и b.txt

1 ответ

Получить базовое имя пути к файлу, который хранится в переменной оболочки MYFILE, вы можете сделать это так:

В Zsh это проще всего, потому что вам не нужно создавать отдельный процесс:

$MYFILE:t

в bash (и, я думаю, ksh), единственный метод, который я знаю, это

$(basename $MYFILE)

Это работает и в Zsh, но имеет недостаток, что необходим подпроцесс.

Другие вопросы по тегам