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.)