arquivo e caminho separados no bash?

arquivo e caminho separados no bash?

Como posso separar os elementos do caminho e do arquivo em um loop bash como este?

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

Responder1

Você não pode. Mas você pode fazê-los separadamente.

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

Responder2

eu sugeririadirnameebasename:

para arquivo em `find /my/path -name "*.ext"`
fazer
    caminho="$(nome do diretório "$arquivo")"
    onlyfile="$(nome base "$arquivo")"
    #...
feito

informação relacionada