Как с помощью сценария оболочки определить, что файл существует?
То есть:
#!/bin/sh
if [ Does File Exist? ]
then
do this thing
fi
Вы, вероятно, захотите / 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 Edition, используйте вместо этого одиночные скобки. Ключ -e все еще поддерживается.
if [ -f filename ]
проверит наличие обычного файла. Есть и другие переключатели, которые вы можете передать, чтобы проверить исполняемый файл или другие атрибуты файла.
Справочная страница для тестирования файлов
Как только вы пройдете все эти страницы,
Держи это Справочный лист удобно.
Всегда есть справочные страницы:
man test
Просто обратите внимание, что если вам нужно что-то, что работает во всех оболочках sh (не только bash) и кросс-платформенных, единственный способ:
ls filename >/dev/null 2>&1
if [ $? = 0 ]; then
echo "File exists"
fi