我正在尝试为Linux内核中所做的修改创建一个补丁文件。
原始目录为/usr/src/linux.vanilla ,新内核为/usr/src/linux-master
我使用的命令是

h@ubuntu:/usr/src$ sudo diff -rupN  linux-master/ linux.vanilla/ > original.patch

但是我得到一个错误说明
bash: original.patch: Permission denied

谁能指出我要去哪里了。我正在使用Ubuntu和Linux内核版本3.15.0。

谢谢。

最佳答案

您在终端中键入的命令是这样的:

sudo diff -rupN  linux-master/ linux.vanilla/ > original.patch

这将以root身份运行:
diff -rupN  linux-master/ linux.vanilla/

然后使用普通用户帐户,将输出内容写入
original.patch

但是,您没有对original.patch的写入权限。

修复1

在root shell下进行工作。
sudo su
diff -rupN  linux-master/ linux.vanilla/ > original.patch

修复2

使用tee重定向到文件。
sudo diff -rupN  linux-master/ linux.vanilla/ | sudo tee original.patch

修复3

将文件写入主目录(或您具有写许可权的其他位置)。
sudo diff -rupN  linux-master/ linux.vanilla/ > ~/original.patch

08-05 10:20