Назад | Перейти на главную страницу

Как проверить, существует ли файл

Как с помощью сценария оболочки определить, что файл существует?

То есть:

#!/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