0

にファイルを作成し/usr/share/applications/て文字列を入れたい。

私がこれまでに持っているもの:

sudo touch /usr/share/applications/test.desktop
dentry="testing"
sudo echo $dentry >> /usr/share/applications/test.desktop

しかし、これはエラーを引き起こしますPermission Denied。それを機能させるにはどうすればよいですか?

4

1 に答える 1

2

独自の権限を使用してファイルを作成し、sudo cpそれを所定の位置に配置する必要があります。

2番目のコマンドが機能しない理由は、リダイレクトがsudo実行される前にシェルによって設定されるためです。実行することでこれを回避できますsudo sh -c 'echo stuff >>file'が、これは単純なものよりもはるかにリスクが高く、sudo cpさらに競合状態があります(このスクリプトの2つの同時インスタンスを実行すると、ファイルに情報が2回書き込まれる可能性があります)。

于 2012-08-09T15:42:10.253 に答える