我目前在/bin
目录中。我正在尝试创建目录内容的文本文件
/bin
,并将其存储在/root
目录中的另一个文件中。我已经输入了命令ls -l >/directoryname/filename
,但没有运行它的权限。我尝试sudo
在命令之前输入,但这也不起作用。有谁知道我如何获得存储此文件的权限?非常感谢,谢谢。
答案1
sudo ls > /root/out.txt
当仅运行ls
命令的一部分时,会以提升的权限运行。因此,您的命令的重定向部分没有访问您想要的位置所需的权限。
相反,你可以使用tee
前缀sudo
如下:
ls | sudo tee /root/out.txt
答案2
使用 sudo 运行多个命令的简单解决方案如下:
sudo bash -c 'command1;command2'
对于您的情况,这会很有用:
sudo bash -c 'ls -l >/directoryname/filename'
当然这只是当你使用 bash 时。
答案3
如果您输入sudo chmod 777 /filename
然后运行它,您将有权运行您之前尝试运行的命令。chmod 777
本质上授予任何用户在此目录中的读、写和执行权限。不过,您可以稍后更改权限,例如用户只能读取或写入。