En bash, un lien de commande
echo test > actual.txt
remplacera le contenu du fichier appelé actual.txtpar "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.txtest un lien vers/dir/fileoù se/dirtrouve un fichier de type répertoire dans lequel vous disposez des droits d'écriture et de recherche, mais qui/dir/filen'existe pas (et la redirection le créerait sans message d'erreur)? Qu'en est-il s'il/dir/fileexiste 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?