arquivo e caminho separados no bash?

6

Como posso separar o caminho e os elementos de 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
    
por 719016 02.07.2012 / 10:02

2 respostas

10

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

$ foo=/usr/local/bin/bar
$ echo "${foo##*/}"
bar
$ echo "${foo%/*}"
/usr/local/bin
    
por 02.07.2012 / 10:07
18

Eu sugeriria dirname e basename :

for file in 'find /my/path -name "*.ext"'
do
    path="$(dirname $file)"
    onlyfile="$(basename $file)"
    # ...
done
    
por 02.07.2012 / 10:54

Tags