web-dev-qa-db-ja.com

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

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

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

できません。ただし、個別に行うことができます。

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

dirname および basename

 `find/my/path -name" * .ext "`のファイルの場合
 do 
 path = "$(dirname $ file)" 
 onlyfile = "$(basename $ file)" 
#... 
完了
24
cYrus