bash - sudo cat << EOF > 文件不起作用,sudo su 可以

标签 bash shell sudo

<分区>

我在 bash 的命令提示符下尝试了以下操作:

sudo cat << EOF > /etc/yum.repos.d/some-name.repo
#Content
#....
#...
EOF

它提示:

-bash: /etc/yum.repos.d/some-name.repo: Permission denied

然后我执行了 sudo su 并尝试了完全相同的操作,除了 cat 之前的 sudo,它没有任何问题。我在上面遗漏了什么?

最佳答案

在使用您的 UID 运行时,输出重定向(例如 >)由 bash 执行,而不是由 cat 执行。要使用 root 的 UID 运行,请使用 sudo:

sudo bash -c 'cat << EOF > /etc/yum.repos.d/some-name.repo
line1
line2
line3
EOF'

关于bash - sudo cat << EOF > 文件不起作用,sudo su 可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18836853/

相关文章:

linux - 如何在脚本中解释此 BASH 语句?

bash - 如何用字符串替换一行中特定范围的位置?

bash - 将 mplayer 的输出写入 fifo 并读取

linux - 如何比较同一文件的两个统计值?

bash - 延时摄影图像到电影中,一次 500 张

bash - 如果名称为 : xxx with bash,则替换 yaml 中的值

linux - 用 sed 替换从第 n 次出现的模式到行尾

linux - Ant、sudo 和 copy 不工作

debian - 抱歉,用户 "user"不允许以 root 身份执行 '/usr/bin/apt-get update'

go - 如何使用 Golang 查找以 root 身份执行程序的用户?