Intereting Posts
/ dev / tcp не присутствует в Linux почему .config-файл не появляется в / boot после установки ядра 4.8.8 Fedora 25 не использует wayland по умолчанию! 218TB XFS LVM файловая система. 144TB бесплатно. Сообщение об ошибке «Нет свободного места на устройстве» правила аудита linux, исключая на основе типа msg exe, для команды su Ошибка жесткого диска / ошибка Garted или что-то еще Как я могу добавить пакет сертификатов x509 (ca-bundle.crt) в базу данных NSS (~. / Pki / nssdb) Вопрос о структуре и циклах Как я могу получить HASH главного ключа LUKS? Сбросить пароль для обычного пользователя, который заблокирован Как отключить выход из системы (всегда выключается) в xfce4? Как печатать одинаковые строки несколько раз с переменными, измененными с помощью Sed / Awk / anything? Какие другие дистрибутивы предоставляют возможность установки внутри Windows? Установка Google Диска с помощью google-drive-ocamlfuse Иногда debugfs не может прочитать данные inode

Как проверить, существует ли один или оба из двух файлов?

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

Не имеет значения, какой из двух файлов существует, или оба они существуют.

 if test -e file1 || test -e file2; then # At least one of file1 or file2 exists ... else # Neither file1 nor file2 exists fi 

test -e проверяет существование. Вам может понадобиться более конкретный тест, например -b (существует и является специальным блоком), -c (существует и является специальным символом), -d (существует и является каталогом), -f (существует и является обычным файлом) и т.п.

Оба других ответа выполняются дважды. Хотя это будет работать, у него есть неэффективность двух вилок процесса. Вы можете получить «или» в одном тесте с помощью:

 if [ -e file1 -o -e file2 ]; then ... 

Что будет немного более эффективным.

В то время как /bin/test и страница руководства для test не называются, вы можете использовать test -a /path/to/file чтобы определить, существует ли файл.

 if [ -a file1 ] || [ -a file2 ]; then echo "I found something"; fi 

|| фактически является логическим ИЛИ.