关于Linux:脚本检查文件存在

script checking file exists

本问题已经有最佳答案,请猛点这里访问。

我正在尝试制作脚本,该脚本将检查文件是否存在。文件名由参数传递。脚本正在检查当前目录中是否存在文件。

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

tmp=$(find $1)
failure="find: ‘$1‘: No such file or directory"

if ["$tmp" !="$failure" ]; then
        echo"file exists"
else
        echo"file not exists"
fi

我正在创建两个变量。第一个保存find命令的结果,第二个保存find命令的失败消息。在if语句中,我比较了这些变量。

即使文件存在,我也总是收到else语句消息。这个代码有什么问题?


如果您的文件在当前路径中,则无需使用find,下面的内容可能会对您有所帮助。

1
2
3
4
5
6
7
#!/bin/bash
filename=$1
if [[ -f"$filename" ]]; then
        echo"file exists"
else
        echo"file does not exists"
fi

然后以script.ksh file_name的形式运行脚本,如果您需要验证文件是否存在并且有一定的大小,那么在上述代码中将-f更改为-s

您也可以使用man test检查您的框中的所有这些条件。