Извлечь имя файла из строки пути

Lo que está tratando de hacer es un alias de servidor aquí.

Opción A (sucio feo)

Debe editar el archivo /etc/hostspara este

por ej.

${IP} foo foo.com

entonces podrás

curl foo -H 'Host: foo.com'

El encabezado del host es necesario ya que el alias de vhost es foo.com

Opción B (limpio y agradable)

Cree un alias de servidor, dependiendo de su servidor web, puede ser una configuración diferente.

En mi apache httpd config utilizo:

/etc/httpd/sites-available-contiene la configuración para cada host virtual

/etc/httpd/sites-enabled-contiene los enlaces simbólicos a los archivos de configuración disponibles de los sitios -, de esta manera puedo activar/desactivar vhosts sin modificar o cambiar el nombre de los archivos en los sitios -disponibles,Solo necesito desvincularme para desactivar un vhost

y he modificado la conf

/etc/httpd/conf/httpd.conf

[...]
IncludeOptional sites-enabled/*.conf`
[...]

así que digamos que tenía

/etc/httpd/sites-available/foo.com.confy una versión con enlace simbólico en/etc/httpd/sites-enabled/foo.com.conf

luego haz

cp /etc/httpd/sites-available/foo.com.conf /etc/httpd/sites-available/foo.conf

modifique foo.confpara que coincida con este:

[...]    
ServerName foo
ServerAlias foo
[...]

y luegoln -s /etc/httpd/sites-available/foo.conf /etc/httpd/sites-enabled/foo.conf

finalmente reiniciar apache:

systemctl restart httpd

Nota todas estas acciones pueden requerir root o sudo (usuario avanzado)

Suponiendo que su sistema tenga un servidor DNS, no se necesitaría nada más; de lo contrario, el archivo /etc/hosts también deberá modificarse, pero cuando realice curl no necesitará pasar un encabezado de host ya que el alias de vhost será foo.

es decir, en este caso curl http://foofuncionará bien, mientras que en la opción A también necesita un encabezado de host.

0
11.07.2019, 20:03
1 ответ

Ответ:
Ознакомьтесь с ответом здесь о переполнении стека с использованием базового имениhttps://stackoverflow.com/a/10124347/879882

basename /path/to/some/file.txt 

вернет только имя файла. Подробнее можно прочитать наman basename

Если вы хотите получить только имя файла без суффикса, вы можете просто заполнить basename -s.txt /path/to/some/file.txt, и суффикс также будет удален.

Другой вариант:
Вы могли бы сделать awk 'BEGIN{FS="/"} {print $NF}а для этой возможности отказаться от суффикса просто| awk 'BEGIN{FS="."} {print $1}'

3
28.01.2020, 02:29

Теги

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