É melhor verificar se o arquivo existe antes de excluí-lo

1

Às vezes, quando eu quero excluir um arquivo (de dentro de um script), vou apenas excluí-lo em vez de verificar se ele existe primeiro. Então eu faço isso:

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

Em vez disso:

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

Eu sinto que é perda de tempo verificar se o arquivo existe e retornar um código de saída.

Então, talvez seja mais rápido fazer isso da primeira maneira, especialmente se na maioria das vezes o arquivo estiver presente.

Existem outras vantagens (ou desvantagens) para fazer isso de uma forma ou de outra?

Estou errado em pensar que será mais rápido?

    
por Kevin Fegan 31.05.2014 / 21:59

2 respostas

2

Por que não?

$ rm -f "temp.txt"

Assim, você não precisa verificar nem redirecionar a saída de erros.

    
por 31.05.2014 / 22:51
1

Existem dois casos:

  • O arquivo a ser removido deverá existir. Em tal situação, o script não deve ignorar o erro, mas deve lidar com a situação adequadamente. Por exemplo, o sistema de arquivos no qual o arquivo deveria ser criado está cheio ou o processo que deveria criar o arquivo falhou, ou o que quer que seja.

  • O arquivo a ser removido pode existir ou não, e nesse caso não há motivo para testar sua existência.

por 01.06.2014 / 00:39

Tags