使用sudo追加信息到文件的问题
如果使用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