Проверка его видит, существует ли файл в сценарии

Таким образом, у меня есть имя файла bobv1.txt, и я не хочу вручную проверять, чтобы видеть, находится ли bobv2.txt на сайте. На сайте bobv1.txt будет заменен bobv2.txt. Я загрузил страницу HTML и определил весь путь загрузки bobvX.txt, и я знаю, был файл, находится в моей файловой системе. Как я могу сказать, находится ли файл уже в моей файловой системе? Мне нужно это для работы на все последующие версии.

-3
задан 10 October 2016 в 19:14

2 ответа

При необходимости в сценарии оболочки затем, можно использовать это:

#!/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
2
ответ дан 28 September 2019 в 10:32

Существует много способов выполнить проверку на том, существует ли файл.

  • использование 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
    
1
ответ дан 28 September 2019 в 10:32

Другие вопросы по тегам:

Похожие вопросы: