检查特定目录中的shell中是否存在文件

时间:2016-03-17 10:19:13

标签: shell unix

这个问题看似愚蠢,但我很难过,不知道出了什么问题。 无论如何,我有一段代码来检查目录中是否存在特定文件。 代码适用于普通文件,普通文件,我的意思是......这类“abc.xlsx或xaga1.xlsx”。问题是当我传递一个带空格的文件时,它似乎失败了,我的意思是......检查失败了。 我会直接看到代码:

if [ ! -e "$file" ]
then
    echo_time "ERROR: $file does not exist - aborting" >> $fileChangedLog
    exit 1
fi

如果我签入了重定向输出的日志文件,我可以看到以下行:

[03/17/16 11:07:09] ERROR: "/opt/just4share/tellabs/tellabs_nodes 2.xlsx" does not exist - aborting

但如果我 ls 错误路径,我会得到以下输出:

[netcool@HJKPNLIN03 scripts]$ ls -lrt "/opt/just4share/tellabs/tellabs_nodes 2.xlsx"
-rw-rw-r--+ 1 netcool ncoadmin 17412 Mar 17 10:43 /opt/just4share/tellabs/tellabs_nodes 2.xlsx

这确认文件存在但是,我的代码无法找到它。我在这做错了什么? :|

编辑:我还尝试使用 -f 开关代替 -e 开关

1 个答案:

答案 0 :(得分:-1)

好吧,我想到了问题,我将双引号字符附加到路径变量 $ file ,试图用双引号括起路径,删除双引号就行了。< / p>

旧代码:

file="\"$directory/$file\""

新代码:

file="$directory/$file"