Получите последний dirname/filename в аргументе пути к файлу в Bash

Я пытаюсь записать рычаг постфиксации для SVN, который размещается на нашем сервере разработки. Моя цель состоит в том, чтобы попробовать к автоматически контролю копию переданного проекта к каталогу, где это размещается на сервере. Однако я должен смочь к только для чтения, который последний каталог в строке каталога передал сценарию, чтобы к контролю к тому же подкаталогу, где наши проекты размещаются.

Например, если я заставляю SVN согласиться на "пример" проекта, мой сценарий получает "/usr/local/svn/repos/example" как свой первый аргумент. Я должен получить просто "пример" от конца строки и затем concat это с другой строкой, таким образом, я могу контроль к "/server/root/example" и видеть, что изменения сразу живут.

198
задан jww 1 January 2019 в 05:38
поделиться

2 ответа

basename удаляет префикс каталога пути:

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example
308
ответ дан 23 November 2019 в 05:12
поделиться

Bash может получить последнюю часть пути без необходимости вызывать внешнее базовое имя :

subdir="/path/to/whatever/${1##*/}"
71
ответ дан 23 November 2019 в 05:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: