我如何创建一个文本文件并在bash中使用sudo权限填充它

时间:2017-03-15 13:14:14

标签: bash

我正在尝试在需要sudo权限的目录中创建并填充文件。

编辑: 似乎基于测试建议的类似帖子。

sudo su -c "echo 'put in file' > file_name"
echo "Some text" | sudo tee /etc/file

将在需要sudo权限的目录中创建一个文件

3 个答案:

答案 0 :(得分:2)

该问题已被编辑,包括引入问题的日志,其中包括命令:

# Taken from edited question
$ echo 'hello' > sudo tee /data/hello

在bash中(允许在简单命令中的任何一点重定向操作符),这恰好等同于运行:

# From question, with redirection moved to end to make actual behavior more readable
echo 'hello' tee /data/hello > sudo

也就是说,它正在当前目录中创建一个名为sudo的文件 ,而不是使用sudo来运行tee(在上面{{1} }只是tee)的一个参数。

相反,你想要的是:

echo

使用竖线(# CORRECT: Using a pipe, not a redirection echo 'hello' | sudo tee /data/hello )而不是|

答案 1 :(得分:0)

假设您拥有所需的sudo权限,则可以使用vinano等编辑器

sudo vi /etc/file

sudo nano /etc/file

如果您没有sudo用于这些程序,您可以首先使用su,然后尝试:

sudo su -

vi /etc/file

nano /etc/file

答案 2 :(得分:0)

如果要在一个命令行上执行所有操作,可以通过在其上运行touch(1)来确保该文件存在。 E.g。

sudo touch /etc/file && echo "Some text" | sudo tee /etc/file