Shell 如果文件不在当前目录中,请在父目录中查找该文件
我正在尝试创建一个shell函数,用于查找当前目录中是否存在文件。如果文件不存在(如果当前目录不存在),则应尝试使用父目录,并转到文件系统的根目录(转到~就足够了) 我试图实现的是在提示符下显示用于项目的当前RubyonRails版本。简单的方法是调用Shell 如果文件不在当前目录中,请在父目录中查找该文件,shell,zsh,Shell,Zsh,我正在尝试创建一个shell函数,用于查找当前目录中是否存在文件。如果文件不存在(如果当前目录不存在),则应尝试使用父目录,并转到文件系统的根目录(转到~就足够了) 我试图实现的是在提示符下显示用于项目的当前RubyonRails版本。简单的方法是调用bundle show rails并解析字符串,但速度相当慢;所以我想解析包含版本信息的文件,Gemfile.lock。我目前拥有的只有在我位于项目根目录(Gemfile.lock所在的位置)时才起作用 这也可以用来解析git配置文件,尽管git
bundle show rails
并解析字符串,但速度相当慢;所以我想解析包含版本信息的文件,Gemfile.lock
。我目前拥有的只有在我位于项目根目录(Gemfile.lock所在的位置)时才起作用
这也可以用来解析git配置文件,尽管git config
相当快
谢谢你这样抽出时间好吗
#!/bin/zsh
# the function
findfile_parent() {
FILE=$1
while [ ! -e "${FILE}" ]; do
if [ "$(pwd)" = "/" ]; then
return
fi
cd ..
done
echo "$(pwd)/${FILE}"
}
# usage example
SEARCHFILE=foo.pyl
UPFILE=$(findfile_parent ${SEARCHFILE})
if [ "x${UPFILE}" != "x" ]; then
echo "found file ${SEARCHFILE} as ${UPFILE}"
else
echo "couldn't find file ${SEARCHFILE}"
fi
请参阅以下两个有用的链接以了解您的解决方案
):我已经找到了链接,但我的目标是用shell脚本,而不是ruby