![]() |
1
1061
您的命令不起作用,因为重定向是由没有写入权限的shell执行的。
有多种解决方案:
谢谢 Jd , Adam J. Forster 和 Johnathan 对于第二、第三和第四个解决方案。 |
![]() |
2
86
这里有人刚刚推荐了sudoing tee:
这也可以用于将任何命令重定向到您无权访问的目录。它之所以有效,是因为tee程序实际上是一个“回显到文件”程序,而重定向到/dev/null是为了停止它同时输出到屏幕,使其与上面的原始人为示例保持一致。 |
![]() |
3
70
我自己发现的一个诀窍是
|
![]() |
4
41
问题是
命令
运行下
绕过这一点的通常方法是:
|
![]() |
5
19
这一主题的另一个变化是:
当然,
他们的优势很小,你不需要记住
|
![]() |
6
17
解释一下为什么选择发球 假设您有适当的权限执行创建输出的命令,那么如果您将命令的输出通过管道传输到tee,那么您只需要使用sudo提升tee的特权,并将tee直接写入(或追加)相关文件。 在问题中给出的示例中,这意味着:
对于几个更实际的例子:
在这些示例中,您将获取非特权命令的输出,并将其写入通常只能由根写入的文件,这是您问题的根源。
这样做是一个好主意,因为生成输出的命令不是用提升的特权执行的。这里好像没关系
注意,您可以使用-a选项tee附加append(如
|
![]() |
7
15
让sudo运行一个shell,如下所示:
|
![]() |
8
7
我处理这个问题的方式是: 如果需要写入/替换文件:
如果需要附加到文件:
|
|
9
5
写剧本怎么样? 文件名:myscript
然后使用sudo运行脚本:
|
![]() |
10
4
我会这样做:
|
![]() |
11
3
每当我要做这样的事情时,我都会变得根深蒂固:
这可能不是最好的方法,但它有效。 |
![]() |
12
3
不是要打死马,但这里有太多的答案
请注意,重定向是如何放在引号内的,以便它由一个由
|
![]() |
13
2
这是基于涉及
如图所示
用法
在代码中,您所要做的就是将输出通过管道发送到该脚本,然后输入所需的超级用户可访问的文件名,如果需要,它会自动提示您输入密码(因为它包括
注意,因为这是
它也有一些简单的保护措施来防止
|
![]() |
14
1
也许你只允许sudo访问一些程序/路径?那就没有办法做你想做的事。(除非你以某种方式破解) 如果不是这样,那么您可以编写bash脚本:
出版社 CTRL + D :
希望能有所帮助。 |
![]() |
15
0
|
|
sungho · 无法使用“>”重定向到文件 10 年前 |
![]() |
user3351901 · 在bash中使用变量作为重定向输出的目录路径 11 年前 |
![]() |
punstress · Head First C中代码后面的奇数结果 12 年前 |