El viernes, trabajando en la distribución de Vidium, me encontré con un problemilla que no sabía como solucionar y que se va a quedar aquí para cuando se me olvide
Lo que tenía que hacer era que Apache no mostrara los ficheros de un directorio cuando no hay un fichero index.loquesea. Ésto se hace (en apache2) eliminando Indexes de las opciones en el fichero /etc/apache2/sites-available/default (a menos que tengas definidos hosts virtuales).
Ahora bien, para que la cosa se hiciera automáticamente desde la instalación de la distribución tenía que hacerlo con un comando o vía shell script, como soy muy vago, preferí invertir un ratejo en buscar algún comando que hiciera ésto porque me parecía algo bastante trivial que alguien tendría que haberse encontrado antes y así es. Podemos solucionarlo con el comando sed. Vamos a ver un par de ejemplos:
Si queremos reemplazar en el fichero “fichero”, la cadena “vieja” por “nueva” utilizaremos un comando como éste:
sed -i ’s/vieja/nueva/g’ fichero
Yo en mi caso, lo que quería era eliminar la cadena “Indexes” así que utilicé algo como ésto:
sed -i ’s/Indexes//g’ /etc/apache2/sites-available/default
Seguramente se podrá utilizar una expresión regular para borrar en vez de sustituir por una cadena vacía, pero ya os lo he dicho, soy un vago
El comando sed permite hacer un montón de cosas, así que si queréis echarle un vistazo más a fondo podéis mirar éstos links:
Sed – An Introduction and Tutorial
A small tutorial about sed
