Linux環境ではファイルを書き込めません

Linux環境ではファイルを書き込めません

私はGCP Linux仮想マシンを使用しており、ファイルを実行して結果を新しいファイルに書き込もうとしています。コードは次のとおりです。

./segment.sh inputfile.txt > outputfile.txt

しかし、これを行うと、私が受け取るメッセージは次のようになります。permission denied for outputfile.txt

私も試しました

sudo sh -c ./segment.sh inputfile.txt > outputfile.txt

しかし、同じメッセージを受け取りましたpermission denied for outputfile.txt

結果をどのように書くことができますかoutputfile.txtoutputfile.txt上記の作業を実行する前に空のファイルを作成する必要がありますか?

答え1

提供された情報によると、問題は現在ディレクトリへの書き込み権限がないようです。この回答では、特定のディレクトリでスクリプトを実行する必要があり、権限などが「正しい」と仮定します。

あなたとあなたは...かなり近いですsudo sh。これが効果があると思いました。スクリプトはroot必要に応じて実行されない場合があります。

sudo sh -c './segment.sh inputfile.txt > outputfile.txt'

この回避策を使用すると、スクリプトを「ユーザー」として実行し、ファイルsudoに書き込むためにのみ呼び出すことができます。

./segment.sh inputfile.txt | sudo tee outputfile.txt >/dev/null

sudoパスワードプロンプトの問題が発生した場合は、次のことを試すことができます。

sudo : && ./segment.sh inputfile.txt | sudo tee outputfile.txt >/dev/null

関連情報