Como muru diz , o uso típico de sudo
é executar apenas um comando. Você não precisa passar o -c
como faria com a maioria dos shells ou com o comando su
.
No entanto, dependendo do que você pretende que o resultado execute mkdir qq
, talvez você queira omitir o sinalizador -i
também. Se você executa sudo -i
sem um argumento de comando para iniciar um shell ou com um argumento de comando ( sudo -i command...
) para executar um único comando, sudo -i
simula o ambiente que você obteria se fizesse login como o usuário alvo . Quando nenhum usuário de destino é especificado, esse usuário é root
, cujo diretório inicial é /root
. Efetuar login como um usuário coloca você no diretório inicial, portanto, sudo -i
faz isso também, embora apenas para o shell que está sendo lançado ou para o comando único que está sendo executado.
Assim, executar sudo -i mkdir qq
na verdade executa mkdir qq
como raiz de /root
. Como qq
é um caminho relativo relativo , o diretório criado por esse comando é, na verdade, /root/qq
, ou seja, , um diretório chamado qq
dentro do diretório /root
. Se é isso que você quer, ótimo! Mas se o que você quer é criar um diretório chamado qq
onde quer que você esteja agora, então você deve fazer uma destas coisas:
- Para criar um diretório, geralmente não há motivo para você precisar do ambiente de login completo de
root
. Assim, você pode soltar o sinalizador -i
e executar sudo mkdir qq
.
- No caso improvável de você precisar do ambiente de login do
root
para criar um diretório - não consigo pensar em um motivo -, você pode usar o caminho completo para o diretório. Embora duvide que você precise disso neste caso, é bom saber que você usa um caminho completo em um comando executado com sudo -i
para verificar se está se referindo ao arquivo ou diretório correto. Por exemplo, se sua meta fosse criar qq
em /opt
, você poderia executar sudo -i mkdir /opt/qq
. Novamente, no entanto, para mkdir
, isso não será necessário, basta soltar o -i
.
- Se você não precisar executar um comando como
root
ou qualquer outro usuário alternativo, não o faça. Para criar um novo diretório em algum lugar em que seu usuário já tenha acesso de gravação, é melhor executar apenas mkdir qq
sem sudo
. Em particular, se este diretório qq
for onde você irá instalar o programa de mensagens instantâneas QQ para uso somente por você, e não outros usuários no sistema, e você está criando dentro de seu diretório inicial, então é melhor não use sudo
quando você instalar ou executar o programa. (Eu não estou supondo que isso é para QQ. Isso é apenas um exemplo.)