Bash / shell搜索当前目录中的子文件夹并将其cd入其中

时间:2014-09-12 06:25:04

标签: bash

如果文件夹“test”在我当前目录中的任何位置并且第一次出现后自动进入它,我将如何进行搜索?在mac上使用终端(bash)。

5 个答案:

答案 0 :(得分:3)

你可以写:

cd "$(find . -type d -name test -print -quit)"

(警告:这适用于test,但对于以换行符结尾的任何文件名都不起作用。幸运的是,我从来没有听说过有真正的文件名结尾的人在换行符中 - 它可能,但从未完成 - 文件名是您控制下的参数。所以我无法想象这将是一个问题。)

答案 1 :(得分:2)

如果该目录存在,则以下内容将起作用 - >

cd `find . -name test -type d`

对于bash,我猜以下应该有效 - >

cd $(find . -name test -type d)

答案 2 :(得分:1)

您可以使用bash的globstar选项来递归搜索目录。

shopt -s globstar
for i in **/*test; do 
    if [[ -d $i ]]; then
        cd "$i"
        break
    fi
done

答案 3 :(得分:0)

您可以尝试:

if [ -d "test" ]; then cd test; fi

或者简单地说:

[ -d "test" ] && cd test

答案 4 :(得分:-1)

或者只是......

cd test

...如果test是您只是cd'ed的目录。 如果不是......那么。