Bash cd ..什么都不返回

时间:2013-05-28 15:25:16

标签: bash directory parent cd

我有一个Bash脚本:

src="/home/xubuntu/Documents"
mkdir -p "$src/folder1"
src="$src/folder1"

# Do something

printf "SRC IS: $src\n"
src=`cd ..` # RETURN TO PARENT DIRECTORY
printf "SRC IS: $src\n"

基本上我想创建一个新文件夹,然后在文件夹中执行某些操作,完成后我想返回父目录Documents。但是出于某种原因,src=`cd ..`没有返回任何内容。

SRC IS: /home/xubuntu/Documents
SRC IS: 

任何想法为什么?

3 个答案:

答案 0 :(得分:3)

您可以访问父母:

src=$(cd ..&&pwd)

好多了,没有使用cd

src=${src%/*} # src is the parent directory

答案 1 :(得分:2)

cd只是改变目录,而不是显示它;这是用pwd完成的;即。

cd ..
src=`pwd` 

#or slightly faster
src=$PWD

答案 2 :(得分:0)

发生的事情是您将命令“cd ..”的输出分配给src (正如你在命令行上看到的那样),什么都没有。使用readlink -f来完成你需要的东西。

你要做的是:

src="/home/xubuntu/Documents"
mkdir -p "$src/folder1"
src="$src/folder1"

# Do something

printf "SRC IS: $src\n"
src=`readlink -f $src/..` # RETURN TO PARENT DIRECTORY
printf "SRC IS: $src\n"

我认为那就是你想做的事情,将src返回给它的父文件夹。