sedコマンドでcygwin bashのファイルを変更すると、ファイルがロックされます。
再現:
- 開い
cmd
てcd
、非ユーザーディレクトリに(fetemp
) echo aaa > test.txt
- テキストエディターで開き、行を追加し、保存してみてください=>作品
%CYGWIN_HOME%\bin\bash -c "sed -i 's/aaa/bbb/' test.txt
」- テキストエディターで、別の行を追加し、保存しようとします=> "Access denied"
WTF ?! ロックせずにファイルをsedする、またはその後ファイルハンドルを解放するにはどうすればよいですか?
Windowsのセキュリティ許可はファイルに完全にねじ込まれているように見えます:
前の許可:
許可後:
ただし、ユーザーディレクトリで動作します(
Desktop
)- LockHunterでファイルをチェックしましたが、ファイルをロックするプロセスが表示されません
- Cygwin FAQは、いくつかのプログラムへの干渉に言及しています。AntivirとCatalystをアンインストールして再起動してみました。
- しようと
UnxTools(クラッシュ)、GnuWin32は(インプレース置換をサポートしていないSED)、Interexは... *ため息をつく(インストーラはW7 Proがサポートしていません)*