Como root é o proprietário do diretório em que você deseja criar o arquivo hello
e os usuários do mesmo grupo e outros usuários não têm permissão para gravar nesse diretório, você receberá bash: hello: permission denied
error ao executar ls -laR > hello
.
Além disso, você obterá exatamente o mesmo erro quando executar o mesmo comando usando sudo
na frente dele. Isso porque o redirecionamento de saída (o operador >
) é feito pelo shell , não por ls
, portanto sudo
não tem efeito sobre ele. sudo
tem efeito apenas em ls -laR
. Para evitar isso, você precisa fazer o login como root:
sudo -i
Então você pode usar o redirecionamento:
ls -laR > hello
Caso contrário, você pode executar o comando bash em um subshell com privilégios de root:
sudo bash -c "ls -laR > hello"
Por fim, outra opção, em vez de usar o redirecionamento por meio do operador >
, você pode usar o comando tee
:
ls -laR | sudo tee hello
Você não tem que usar, neste caso, o comando sudo
for ls
porque os usuários do mesmo grupo com root e todos os outros usuários têm permissão de leitura e execução nesse diretório.