No bash, um link de comando
echo test > actual.txt
substituirá o conteúdo do arquivo chamado actual.txt
por "test" e criará o arquivo se ele não existir. No entanto, se o arquivo existir, o bash o abrirá, truncará e gravará o novo conteúdo no arquivo.
Especificamente, o comando redirecionar falha neste cenário:
ln -s /some/illegal/path link.txt
echo test > link.txt
O Bash 4.4.12 me dá a mensagem de erro confusa link.txt: No such file or directory
.
Uma maneira de evitar isso é excluir o arquivo antes de executar o comando redirecionado.
rm link.txt && echo test > link.txt
Eu estava pensando, no entanto, se havia algum ajuste nas opções do bash ou o operador de redirecionamento que impediria esse modo de falha. Alguma ideia?
link.txt
houver um link para/dir/file
onde/dir
está um arquivo do tipo diretório para o qual você tem permissão de gravação e pesquisa, mas/dir/file
não existe (e o redirecionamento o criaria sem uma mensagem de erro)? E se/dir/file
existir, mas não for um arquivo comum (dispositivo, fifo, diretório ...), ou você não tem permissão de gravação ou pesquisa/dir
?