私は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.txt
?outputfile.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