You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行sudo find . | cpio -o -H newc > ../init.cpio时提示权限拒绝的问题求助

执行sudo find . | cpio -o -H newc > ../init.cpio时提示权限拒绝的问题求助

兄弟,我太懂你碰到的这个糟心问题了!先把你的情况再理清楚:

我运行命令 sudo find . | cpio -o -H newc > ../init.cpio 时,返回了:
-bash: ../init.cpio: Permission denied.
我不知道怎么修复,换个目录运行同一个命令就没问题,跟着教程做的但人家视频里完全没报错,查了一些方案也不管用。

其实这个问题的核心特别简单:sudo只给前面的find命令提升了权限,后面的管道、cpio命令,还有最关键的重定向>操作,都是用你当前的普通用户权限执行的!而你当前所在目录的父目录(../),你的普通用户没有写入权限,所以就触发了权限拒绝的报错。

给你几个靠谱的解决办法,你可以挨个试试:

  • 用sudo包裹整个命令,让重定向也在root权限下执行:
    把命令改成这样:

    sudo bash -c "find . | cpio -o -H newc > ../init.cpio"
    

    这里用bash -c把整个命令串当成一个参数传给sudo,这样整个流程都跑在root权限里,自然就能写入父目录了。

  • 先给父目录的init.cpio文件赋予你的用户权限:
    先手动创建空文件并修改归属:

    sudo touch ../init.cpio && sudo chown $USER:$USER ../init.cpio
    

    之后再运行你原来的命令,这时候因为文件已经属于你了,普通用户就能正常写入了。

  • 直接切换到root用户执行命令:
    先输入sudo su切换到root身份,然后直接运行你的原命令:

    find . | cpio -o -H newc > ../init.cpio
    

    完成后输入exit退出root身份就行。

另外为啥换个目录就好使?因为那个目录的父目录你有写入权限,普通用户就能直接创建文件,所以没报错~

备注:内容来源于stack exchange,提问作者thatkidinvirtual

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:10:27