如何使用 shell 脚本确定文件是否存在?
IE:
#!/bin/sh
if [ Does File Exist? ]
then
do this thing
fi
答案1
您可能想要 /bin/bash,除非您需要使用 /bin/sh,/bin/sh 受到更多限制。因此,如果您使用 bash:
就像这样:
if [[ -e filename ]]; then
echo 'exists'
fi
如果您的文件名在变量中,请使用以下内容,如果文件中有空格,则双引号很重要:
if [[ -e "$myFile" ]]; then
echo 'exists'
fi
如果您使用 sh,并且希望与 IEEE Std 1003.1,2004 版兼容,则请改用单括号。 -e 开关仍受支持。
答案2
答案3
if [ -f filename ]
将测试常规文件是否存在。您还可以传递其他开关来检查文件是否可执行或文件的其他属性。
答案4
需要注意的是,如果您想要一些可以在所有 sh shell(不仅仅是 bash)和跨平台上运行的东西,唯一的方法是:
ls filename >/dev/null 2>&1
if [ $? = 0 ]; then
echo "File exists"
fi