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



这个问题可能看起来很愚蠢,但我被难住了,不知道出了什么问题。无论如何,我有一段代码可以检查目录中是否存在特定文件。代码适用于普通文件,我的意思是普通文件..诸如此类的"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 开关

好吧,我想出了问题,我将双引号字符附加到路径变量$file,试图将路径括在双引号中,删除双引号就可以了。

旧代码:

file=""$directory/$file""

新代码:

file="$directory/$file"

最新更新