bash でファイルとパスを分離しますか?

bash でファイルとパスを分離しますか?

このように bash ループ内でパスとファイル要素を分離するにはどうすればよいですか?

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

答え1

できません。ただし、別々に行うことは可能です。

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

答え2

私は提案しますdirnameそしてbasename:

`find /my/path -name "*.ext"` 内のファイル
する
    パス="$(dirname "$file")"
    onlyfile="$(basename "$file")"
    # ...
終わり

関連情報