Таким образом, у меня есть имя файла bobv1.txt, и я не хочу вручную проверять, чтобы видеть, находится ли bobv2.txt на сайте. На сайте bobv1.txt будет заменен bobv2.txt. Я загрузил страницу HTML и определил весь путь загрузки bobvX.txt, и я знаю, был файл, находится в моей файловой системе. Как я могу сказать, находится ли файл уже в моей файловой системе? Мне нужно это для работы на все последующие версии.
При необходимости в сценарии оболочки затем, можно использовать это:
#!/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
Существует много способов выполнить проверку на том, существует ли файл.
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