在 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

我会建议dirnamebasename

在 `find /my/path -name "*.ext" 中查找文件
    路径=“$(目录名“$文件”)”
    onlyfile="$(basename "$file")"
    # ...
完毕

相关内容