所以我有一个名为 bobv1.txt 的文件名,我不想手动检查 bobv2.txt 是否在网站上。网站上的 bobv1.txt 将被 bobv2.txt 替换。我已下载 html 页面并确定了 bobvX.txt 的完整下载路径,并且我知道该文件在我的文件系统中。我如何判断该文件是否已在我的文件系统中?我需要它适用于所有后续版本。
答案1
如果你需要 shell 脚本,那么你可以使用这个:
#!/bin/bash
file="$1"
if [ -f "$file" ]; then
echo "File $file exists."
else
echo "File $file does not exist."
fi
您可以像这样运行它:
bash test.sh /tmp/bobv2.txt
答案2
有很多方法可以检查文件是否存在。
- 使用
test
命令(又名[
)来做[ -f /path/to/file.txt ]
使用重定向尝试打开文件(请注意,如果您没有读取该文件的权限,则此方法无效)
$ bash -c 'if < /bin/echo ;then echo "exists" ; else echo "does not exist" ; fi' exists $ bash -c 'if < /bin/noexist ;then echo "exists" ; else echo "does not exist" ; fi' $ bash: /bin/noexist: No such file or directory does not exist
或者消除错误信息:
$ 2>/dev/null < /etc/noexist || echo "nope" nope
使用外部程序,例如
stat
$ if ! stat /etc/noexist 2> /dev/null; then echo "doesn't exist"; fi doesn't exist
或
find
命令:$ find /etc/passwd /etc/passwd $ find /etc/noexist find: ‘/etc/noexist’: No such file or directory