vis*_*rit 0 permissions sudo io-redirection
我正在尝试使用以下命令删除 scsi 磁盘echo 1 > sudo /sys/block/sdb/device/delete
。当我尝试执行lsscsi
该命令时,我仍然能够看到磁盘。
如果有人能指出我哪里出错了,那就太好了。
你出错的地方在于你对输出重定向如何工作的理解。
Kusalananda 的评论解释了会发生什么—— 的输出echo
被定向到sudo
本地目录中命名的文件中。1
和/sys/block/sdb/device/delete
是 的参数echo
,您将在输出文件中找到它们。
同样,sudo echo 1 > /sys/block/sdb/device/delete
也不会工作,因为sudo
shell 设置输出重定向时还没有启动。
如果你真的想这样做而不是 su 暂时root,你会想要:
echo 1 | sudo tee /sys/block/sdb/device/delete
Run Code Online (Sandbox Code Playgroud)
或者
sudo sh -c 'echo 1 > /sys/block/sdb/device/delete'
Run Code Online (Sandbox Code Playgroud)
tee
从 中获取输入stdin
并将其写入指定的文件以及stdout
,并且可以通过 以 root 身份运行sudo
。在后一个命令中,整个 shell 进程运行在sudo
.