sed コマンド エラー: "./seduEguCh" に対して予約された権限: 操作は許可されません。

sed コマンド エラー:

sedコマンドでエラーメッセージを修正する方法が見つかりません。 Windows 10(Linux用のWindowsサブシステム機能がオンになっている)のUbuntuでシェルスクリプトを実行しています。エラーを引き起こす行は次のとおりです。

sed -i -e 's/ 841 bp//' Prot.fasta

Prot.fastaファイルはシェルスクリプトによって生成されたシーケンスのリストで、各シーケンスは次のとおりです。

>Emiliania_huxleyi_CCMP1516_tax280463_locID_jgi|Emihu1|426057|estExtDG_Genewise1PlusC_50194_seqID3655840 841 bp
------------------------------------------------------------
-----------------------------------MASARLAIEGRVERQPIFRRLRGSE

841 bp各シーケンスが終了するたびにその部分を削除したいと思います。ただし、スクリプトを実行すると、上記のコード行で次のエラーが発生します。

sed: preserving permissions for './sedSjMfzs': Operation not permitted
sed: cannot rename ./sedSjMfzs: Permission denied

このエラーが発生する理由についてアドバイスできる人はいますか?

ベストアンサー1

sed -i()を実行すると、次のことが起こりますstrace

openat(AT_FDCWD, "input", O_RDONLY)     = 4
[...]
openat(AT_FDCWD, "./sedMSD2Zj", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
[...]
rename("./sedMSD2Zj", "input")          = 0

Windows NTFS 権限は、Linux 権限よりもはるかに複雑です。私はそれに慣れていませんが、ユーザーはファイルを作成できますが、名前を変更することはできないようです。

おすすめ記事