1

Иногда, когда я хочу удалить файл (из скрипта), я просто удаляю его, а не проверяю, существует ли он первым. Итак, я делаю это:

$ rm "temp.txt" 2>/dev/null

Вместо этого:

[ -f "temp.txt" ] && rm "temp.txt"

Я просто чувствую, что это пустая трата времени, чтобы проверить, существует ли файл и вернуть ли код выхода.

Так что, возможно, это быстрее сделать первым способом, особенно если в большинстве случаев файл будет присутствовать.

Есть ли какие-либо другие преимущества (или недостатки), чтобы сделать это так или иначе?

Я ошибаюсь, думая, что это когда-нибудь будет быстрее?

2 ответа2

2

Почему бы и нет?

$ rm -f "temp.txt"

Так что вам не нужно ни проверять, ни перенаправлять вывод ошибок.

1

На самом деле есть два случая:

  • Предполагается, что файл для удаления существует. В такой ситуации скрипт не должен игнорировать ошибку, а должен обрабатывать ситуацию соответствующим образом. Например, файловая система, в которой должен был быть создан файл, переполнена или произошел сбой процесса, который должен был создать файл, или что-то еще.

  • Файл для удаления может существовать или нет, и в этом случае нет смысла проверять его наличие.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .