【问题标题】:Can't cat to a file in /usr/bin [duplicate]无法转到 /usr/bin 中的文件 [重复]
【发布时间】:2017-04-19 09:04:56
【问题描述】:

我运行了以下命令,希望能够将文件的内容粘贴到其中。

sudo cat > /usr/bin/sasquatch

即使在使用sudo 更改文件权限后,也会不断收到以下错误。

bash: /usr/bin/sasquatch: Permission denied

为什么会发生这种情况,我该如何解决?

【问题讨论】:

  • Sudo 仅授予您管理员授予您的访问权限。除非它是您自己的个人机器,否则它通常不是不可阻挡的根魔法。
  • 使用sudo sh -c 'cat > /usr/bin/sasquatch' 请记住,在您的情况下,sudo 仅适用于cat,重定向> 以普通用户身份执行。使用 -c 可以解决这个问题。
  • 请注意,篡改/usr/bin 中的文件是个坏主意——你应该将文件单独留在那里(如果/bin/usr/bin 不同,则应将文件留在其中)。如果您需要将文件添加到“系统”目录,通常最好使用/usr/local/bin

标签: bash file-permissions sudo cat


【解决方案1】:

> 将使 shell 打开一个文件进行写入。您的 shell 正在使用您的用户权限运行。

使用 sudo 只会使命令运行提升,而不是 shell(它正在打开文件)。

一种方法是使用 sudo 启动一个新的 shell:

sudo bash -c 'cat > /usr/bin/sasquatch'

既然提到了粘贴,可以考虑使用xclip:

sudo bash -c 'xclip -sel clip > /usr/bin/sasquatch'

【讨论】:

    猜你喜欢
    • 2021-02-16
    • 2018-12-01
    • 2013-08-15
    • 2012-06-08
    • 1970-01-01
    • 2018-04-21
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多