ジャンル不定の日記です。

sudoでリダイレクト

# genfstab -U /mnt >> /mnt/etc/fstab
Arch Linuxをインストールしたことある人ならおなじみのfstabを生成するコマンド。

インストール済みの環境上でmountしたパーティションにインストールする場合、
$ sudo genfstab -U /mnt >> /mnt/etc/fstab
こんな感じでsudoでやりたくなるが、これできないんですよね。
genfstabの出力をリダイレクトするのではなく、sudoコマンドの出力をリダイレクトになる。
つまり、/mnt/etcの書き込み権限がないユーザーでは権限がない。

そんな時suしてから作業してたが、
$ sudo sh -c genfstab -U /mnt >> /mnt/etc/fstab
sudoで-cオプション付きのshコマンドを使えばリダイレクトもroot権限になるらしい。

パイプでsudo teeに渡すことでもできるらしいが、
どう考えてもshコマンドの方がスマート。