Как знать, не ли существует регулярный файл в bash?

Давайте предполагать, что я нахожусь в каталоге и знаю, что файл archivo существуй:

if [ -f "archivo" ]; then
    echo "archivo existe"
fi

Есть какой-то способ подтверждать, не ли существует файл, не будучи должен использовать else условного?

13
задан 30.08.2016, 13:44
3 ответа

Извлеченный из вопроса сестра Ов do I tell if, чтобы регулировать file does not exist in bash?.

Да! Только ты должен использовать отрицание ! в условном:

if [ ! -f "archivo" ]; then
    echo "archivo no existe"
fi

Или более краткой формы:

[ ! -f "archivo" ] && echo "archivo regular no existe"

Заметьте себе, что man test покажи, что выбор -f:

-f FILE
     FILE exists and is a regular file

А следовательно отрицание этого просто означает, что указанный не регулярный файл. Он совсем не может быть или может быть каталог, и т.д.

13
ответ дан 01.12.2019, 08:18
  • 1
    Я в и # 241; adir и # 237; в tambi и # 233; n, что правильного способа подтверждать, если файл, типа, который, не существует, [ ! -e "archivo" ]. –  Darkhogg 01.12.2015, 19:08
  • 2
    Привет ¿ Ты не считаешь конвертировать твой ответ как Wiki сообщества? –  Jorgesys♦ 05.10.2017, 21:21
  • 3
  • 4
    Который опциональный, одинокий, что не habí в ощущенный, что ты сами реализовал вопрос и ответил ее (1 отрицательное приращения. 15 в 16:58) поэтому спрашивал. –  Jorgesys♦ 05.10.2017, 21:31
  • 5
    @Jorgesys sí он состоял в первом моменте Куска веревки с яростью в том, чтобы приносить контент SO. Dudé месяцы назад, pregunté в Цели и я увидел, что есть достаточно согласие в не помечании как wiki если только не будет любить explicitar, что является чем-то, чтобы улучшаться между всеми. Ввиду того, что ответа достаточно está ndar и не cambiará (Bash очень старый) я думаю, что он не надо. Это sí если он производит confusió n или беспокойство у меня нет проблемы в помечании ее как таковой. Привет. –  fedorqui 05.10.2017, 21:34

Возможно использовать ее negaciГіn ! перед -f

if [ ! -f "$archivo" ]; then
    echo "archivo inexistente"
fi

или перед [

if ! [ -f "$archivo" ]; then
    echo "archivo inexistente"
fi

TambiГ©n могут использовать -e из этой формы

if [ ! -e "$archivo" ]; then
   echo "archivo inexistente"
fi
9
ответ дан 01.12.2019, 08:18

Это рукописный шрифт, который я использую, чтобы проверять, если файл существует:

if [ ! -f "/miFolder/miArchivo.txt" ]; then
    echo "El archivo no existe"
fi

opciГіn -f отрицается, что, чтобы определять, не существует файл.

5
ответ дан 01.12.2019, 08:18
  • 1
    Привет Хорхе, проверял этот вопрос mí в hace столько времени... Я понимаю, что ты в самом деле используешь то же самое что sugerí в моем ответе. Но есть пара деталей, что deberí an быть исправленным aquí: важно использовать кавычки около имени файла, для того, чтобы así об именах с местом управляли хорошо; ademá s, echo " ... !!" дает ошибку, так как после того, как !! между двойными кавычками пробует расширяться в предыдущую команду. Следовательно, предпочтительно использовать простые кавычки. –  fedorqui 05.06.2017, 16:26
  • 2
    Проверяя estsa ответ (recibí положительный обет в моем вопросе) я понимаю, что сейчас этот ответ точно равен получающей (mí a) –  fedorqui 05.10.2017, 21:11