¿archivo y ruta separados en bash?

¿archivo y ruta separados en bash?

¿Cómo puedo separar la ruta y los elementos del archivo en un bucle bash como este?

for file in `find /my/path -name "*.ext"`
do
    #(path,onlyfile) = separate_path_and_file $file
    #dosomethingwith $onlyfile
done

Respuesta1

No puedes. Pero puedes hacerlos por separado.

$ foo=/usr/local/bin/bar
$ echo "${foo##*/}"
bar
$ echo "${foo%/*}"
/usr/local/bin

Respuesta2

Yo sugeriríadirnameybasename:

para el archivo en `buscar /mi/ruta -nombre "*.ext"`
hacer
    ruta="$(dirname "$archivo")"
    onlyfile="$(nombre base "$archivo")"
    #...
hecho

información relacionada