标签: git filenames glob
我正在尝试创建一个脚本,以便将$ GIT_DIR / info / exclude转换为.gitignore文件。我想将.gitignore文件尽可能地放在模式目标附近,这意味着像/a/b/*/*.c这样的全局应放在/a/b/.gitignore中。为了准确地做到这一点,我需要能够根据man glob从一开始就返回最长子串的东西,这是唯一标识的。是否存在这样的东西,最好是可以在* nixes中移植的东西?
/a/b/*/*.c
/a/b/.gitignore
man glob
答案 0 :(得分:0)
找到解决方案 - 迭代dirname "$string"直到[ -e "$string" ]成功。生成的脚本可以在blog post中找到。
dirname "$string"
[ -e "$string" ]