Ubuntu bash script: ¿cómo dividir la ruta por la última barra?

Tengo un archivolist.txt) que contiene rutas relativas a archivos, una ruta por línea, es decir, algo como esto:

foo/bar/file1
foo/bar/baz/file2
goo/file3

Necesito escribir una secuencia de comandos de bash que procese una ruta a la vez, la divida en la última barra y luego inicie otro proceso que alimenta las dos partes de la ruta como argumentos. Hasta ahora solo tengo la parte de bucle:

for p in `cat list.txt`
do
   # split $p like "foo/bar/file1" into "foo/bar/" as part1 and "file1" as part2
   inner_process.sh $part1 $part2
done

¿Cómo me divido? ¿Funcionará esto en el caso degenerado cuando la ruta no tiene barras?

Gracias

Respuestas a la pregunta(5)

Su respuesta a la pregunta