使用sudo追加信息到文件的问题

2015-08-03 分类 [Shell]

如果使用sudo cat file1 > file2,命令是一定可以执行的,如果使用sudo cat file1 >> file2呢?
答案是,如果你原来对file2没有写入的权限,则使用第二条命令依然无法写入file2。具体的原因涉及到了Shell的执行顺序的问题,实际上这条命令是

sudo cat file1
file1_output >> file2

于是并没有使用root权限追加信息到file2。如果想实现命令2希望得到的结果,则需要以下命令中的一个:

sudo sh -c "cat file1 >> file2"
echo "cat file1 >> file2" | sudo sh