更改目录

时间:2011-03-12 00:11:13

标签: shell

我在shell上执行某些命令时遇到了一些麻烦 我的问题是我想更具体地将目录更改为我不知道但包含名为xxx的文件的目录。 如何直接更改包含该文件的目录? 如果我知道包含该文件的目录的名称会更容易,因为我只需要使用cd~ /目录名。 谁能帮我? 感谢

4 个答案:

答案 0 :(得分:2)

如果你有GNU find

cd "$(find /startdir -name 'filename' -printf %h -quit)"

您可以将“/ startdir”替换为任何有效目录,例如/.或`〜/.

如果您想cd$PATH中包含可执行文件的目录:

cd "$(dirname "$(type -P "filename")")"    # Bash

cd "$(f=$(type -P "ksh"); echo "${f%/*}")"    # Bash

cd "$(dirname "$(which "filename")")"

答案 1 :(得分:1)

如果您不知道文件的位置,请转到系统的根目录并查找

cd /
find . -iname filename

答案 2 :(得分:1)

在几个Linux系统中,您可以这样做:

$ cd `find . -name "filename" | xargs dirname`

但是将“filename”更改为您要查找的文件。

答案 3 :(得分:0)

BASH

cd `find . -name "*filename*" | head -1`

这是对乔某答案的一种变化。查找包含字符串 filename 的第一个文件,然后将当前目录更改为其位置。

* 是一张外卡, filename 之前和/或之后可能会有一些内容。