我正在尝试在需要sudo权限的目录中创建并填充文件。
编辑: 似乎基于测试建议的类似帖子。
sudo su -c "echo 'put in file' > file_name"
echo "Some text" | sudo tee /etc/file
将在需要sudo权限的目录中创建一个文件
答案 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权限,则可以使用vi或nano等编辑器
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