En bash, un lien de commande
echo test > actual.txt
remplacera le contenu du fichier appelé actual.txt
par "test" et créera le fichier s'il n'existe pas. Cependant, si le fichier existe, bash l'ouvrira, le tronquera et écrira le nouveau contenu dans le fichier.
Plus précisément, la commande de redirection échoue dans ce scénario:
ln -s /some/illegal/path link.txt
echo test > link.txt
Bash 4.4.12 me donne le message d'erreur déroutant link.txt: No such file or directory
.
Pour éviter cela, assurez-vous de supprimer le fichier avant d'exécuter la commande redirigée.
rm link.txt && echo test > link.txt
Je me demandais, cependant, s'il y avait un ajustement des options bash ou de l'opérateur de redirection qui empêcherait ce mode d'échec. Des idées?
link.txt
est un lien vers/dir/file
où se/dir
trouve un fichier de type répertoire dans lequel vous disposez des droits d'écriture et de recherche, mais qui/dir/file
n'existe pas (et la redirection le créerait sans message d'erreur)? Qu'en est-il s'il/dir/file
existe mais n'est pas un fichier normal (périphérique, fifo, répertoire ...), ou si vous n'avez pas l'autorisation d'écrire ou de rechercher/dir
?