echo 1 > sudo /sys/block/sdX/device/delete 命令

vis*_*rit 0 permissions sudo io-redirection

我正在尝试使用以下命令删除 scsi 磁盘echo 1 > sudo /sys/block/sdb/device/delete。当我尝试执行lsscsi该命令时,我仍然能够看到磁盘。

如果有人能指出我哪里出错了,那就太好了。

Sha*_*dur 5

你出错的地方在于你对输出重定向如何工作的理解。

Kusalananda 的评论解释了会发生什么—— 的输出echo被定向到sudo本地目录中命名的文件中。1/sys/block/sdb/device/delete是 的参数echo,您将在输出文件中找到它们。

同样,sudo echo 1 > /sys/block/sdb/device/delete也不会工作,因为sudoshell 设置输出重定向时还没有启动。

如果你真的想这样做而不是 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.