您的命令无效,因为重定向是由您的外壳执行的,该外壳没有写权限
/root/test.out。sudo 不 执行输出的重定向。
有多种解决方案:
使用sudo运行shell并使用以下
-c
选项向其提供命令:sudo sh -c 'ls -hal /root/ > /root/test.out'
使用命令创建脚本,然后使用sudo运行该脚本:
#!/bin/sh
ls -hal /root/ > /root/test.out
使用启动一个shell,
sudo -s
然后运行您的命令:[nobody@so]$ sudo -s
[root@so]# ls -hal /root/ > /root/test.out
[root@so]# ^D
[nobody@so]$使用
sudo tee
(如果使用该-c
选项时必须逃避很多):sudo ls -hal /root/ | sudo tee /root/test.out > /dev/null
/dev/null需要重定向到,以阻止
tee
输出到屏幕。要 附加 而不是覆盖输出文件(
>>),请使用
tee -a或
tee --append(最后一个特定于GNU
coreutils)。



