权限被拒绝,但文件是chmod 777

时间:2015-01-16 15:36:43

标签: linux

这是我的代码:

#!/bin/sh
sudo touch /home/test/hello.txt
sudo chmod 777 /home/test/hello.txt
sudo touch /home/test/hello1.txt
sudo chmod 777 /home/test/hello1.txt
"$(sudo du -hs /home/test/*)" >> /home/test/hello.txt
"$(sudo sort -n /home/test/hello.txt)" >> /home/test/hello1.txt
head -3 /home/test/hello1.txt

在第7行,它给出了错误:权限被拒绝。 我已经制作了两个文件chmod 777,所以我不知道它来自哪里。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:6)

$()du行中移除sort,使它们像这样:

sudo du -hs /home/test/* >> /home/test/hello.txt
sudo sort -n /home/test/hello.txt >> /home/test/hello1.txt

$()获取括号内的操作结果,并尝试将其作为命令执行。如果此结果不是可以运行的结果,您将收到各种错误消息。

许可被拒绝即将到来,因为$()内部的任何结果恰好出现在你的机器上也恰好是你无法执行的事情。在我对您的脚本的测试中,我还得到了Is a directorycommand not found。它实际上与hello.txthello1.txt的模式无关。

我应该提一下,我并不完全确定您正在寻找的结果,因此进行上述更改可能会也可能无法满足您的需求。但是,该脚本现在将运行,为du提供原始hello.txt结果,并在hello1.txt中提供各种排序结果。如果您尝试从最小磁盘使用量到最大磁盘使用列表,则可能需要稍微调试排序(提示:尝试从-h中取消du)。