Onde você está errado, você entende como o redirecionamento de saída funciona.
O comentário de Kusalananda explica o que acontece - a saída de echo
é direcionada para um arquivo chamado sudo
no diretório local. 1
e /sys/block/sdb/device/delete
são argumentos para echo
, você os encontrará no arquivo de saída.
Da mesma forma, sudo echo 1 > /sys/block/sdb/device/delete
não funcionará, porque o sudo
ainda não foi iniciado quando o shell configurar o redirecionamento de saída.
Se você realmente quiser fazer isso em vez de su para root por um momento, você vai querer:
echo 1 | sudo tee /sys/block/sdb/device/delete
ou
sudo sh -c 'echo 1 > /sys/block/sdb/device/delete'
tee
recebe a entrada de stdin
e a grava no arquivo especificado, bem como stdout
, e pode ser executado como raiz por meio de sudo
. No último comando, todo o processo do shell é executado em sudo
.