Ответ 1
В bash
:
path=/this/is/could/be/any/path/abc.txt
file=$(basename $path)
или
file=${path##*/}
Я пытаюсь получить "abc.txt"
из /this/is/could/be/any/path/abc.txt
с помощью команды Unix.
Обратите внимание, что /this/is/could/be/any/path
является динамическим.
Любая идея?
Спасибо заранее.
В bash
:
path=/this/is/could/be/any/path/abc.txt
file=$(basename $path)
или
file=${path##*/}
basename path
указывает имя файла в конце пути
Edit:
Возможно, стоит добавить, что общий шаблон заключается в использовании обратных кавычек вокруг команд, например. `basename...`, поэтому оболочки UNIX будут выполнять команду и возвращать ее текстовое значение.
Чтобы присвоить результат базового имени переменной, используйте
x=`basename ...path...`
и $x будет именем файла.
Вы можете использовать basename /this/is/could/be/any/path/abc.txt
Вы можете использовать команду dirname
$ dirname $path