Lorsque je change des fichiers dans cygwin bash avec la commande sed, le fichier est verrouillé.
Reproduire:
- Ouvrir
cmd
etcd
dans un répertoire non utilisateur (fetemp
) echo aaa > test.txt
- Ouvrez dans texteditor, ajoutez une ligne, essayez d'enregistrer => travaux
%CYGWIN_HOME%\bin\bash -c "sed -i 's/aaa/bbb/' test.txt
"- Dans texteditor, ajoutez une autre ligne et essayez d'enregistrer => "Accès refusé"
WTF?! Comment puis-je sed un fichier sans verrouillage, ou libérer les poignées de fichier par la suite?
Les autorisations de sécurité Windows semblent être complètement vissées sur le fichier:
Autorisations avant:
Autorisations après:
Cela fonctionne cependant dans le répertoire utilisateur (
Desktop
)- J'ai vérifié le fichier avec LockHunter mais aucun processus ne semble verrouiller le fichier
- La FAQ Cygwin mentionne les interférences avec certains programmes. Il a essayé de désinstaller Antivir et Catalyst et de redémarrer.
- Essayer
UnxTools(plante),GnuWin32(sed ne prend pas en charge la substitution sur place),Interex(l'installateur ne prend pas en charge W7 Pro) ... * soupir *