フォローアップの質問です
同じコマンドを再実行したい場合sudo !!
次のコマンドを実行した後:
echo "something">/path/file
グローバル代替構文を使用してこのコマンドを呼び出すことができます。
!!:gs/>/|sudo tee -a /
次の後にスペースを使用してください。-ㅏ範囲。
これは次のとおりです。須藤! !ただし、<および>のsudo制限をバイパスするのに役立ちます。 sudoは[<、>]の使用を許可していないからです。
.bashrc
簡単に使用できるように、これをエイリアスにどのように入力しますか?
頑張った
alias redo='!!:gs/>/|sudo tee -a /'
しかし、これはうまくいきません。エラーが発生します。
$ echo "sdfdsf">/path/file
bash: /path/file: no permissions
$ redo
bash: /: Is a directory
tee: /: Is a directory
ベストアンサー1
私の考えであなたが探しているものは次のとおりです。
sudo sh -c "!!"
これは最後のコマンドに変換され、!!
シェルリダイレクト/パイプ/変数の機能を維持します。
➜ ~ ping 10.0.0.1
--- 10.0.0.1 ping statistics ---
6 packets transmitted, 3 received, 50% packet loss, time 5001ms
rtt min/avg/max/mdev = 1.736/1.951/2.182/0.185 ms
➜ ~ sudo sh -c "!!" ## And becomes like this:
➜ ~ sudo sh -c "ping 10.0.0.1"