Bash脚本无法在相对路径目录中找到文件

时间:2014-10-22 14:29:28

标签: linux bash

我是bash的新手,我正在尝试创建一个应该在给定目录中找到存档的脚本。 $1是存档的名称。

当给定路径为./1/ar.tgz时,脚本可以正常工作。但当路径为../data 1/01_text.tgz时,我遇到以下问题:

  

dirname:额外的操作数" 1 / 01_text.tgz"

然后No such file or directory

这是我的代码片段:

VAR=$1
DIR=$(dirname ${VAR})
cd $DIR

我做错了什么?

2 个答案:

答案 0 :(得分:1)

这个空间导致了问题:cd $DIR扩展为cd ../data 1/01_text.tgzcd不知道如何制作第三个"参数"。在目录周围添加引号:cd "$DIR"

答案 1 :(得分:1)

艾哈迈德的答案是对的,但您还需要将VAR括在双引号中。正确的代码片段是:

VAR=$1
DIR=$(dirname "$VAR")
cd "$DIR"