Que comando POSIX de 2 letras é diferente de todos os outros?

3
Eu fui entrevistado para um estágio e recebi a mesma pergunta que esta: from-all-the-others-QTN_498236.htm "> link

A resposta está certa, é cd (como o entrevistador me disse). Estou muito confuso com isso. Por que cd é diferente? Eu disse ao entrevistador que é diferente porque pode não ser implementado pelo "shell", mas eu não sabia do que estava falando naquele momento.

    
por dorafmon 20.12.2013 / 01:34

1 resposta

28

Esta é, obviamente, uma questão subjetiva com muitas respostas plausíveis.

Uma peculiaridade do cd é que ele deve ser implementado pelo próprio shell: ele não pode ser um comando externo (um que é executado em um programa separado). cd altera o diretório de trabalho do processo de shell, e somente o próprio shell pode fazer isso.

Esta é uma pergunta ruim porque cd não é o único comando desse tipo. bg , fc , fg estão no mesmo barco. cd existia antes dos outros, o que é uma maneira de torná-lo único.

Outra resposta plausível seria dd , que tem uma sintaxe de opção totalmente diferente de qualquer outra. outro comando (foi emprestado da IBM).

É claro que você pode criar argumentos para muitos outros comandos, como rm (o único comando de duas letras que é puramente destrutivo), su (o único comando de duas letras que absolutamente tem que ser setuid root) , at (o único comando de duas letras que normalmente é setgid), sh (é o próprio shell, o que o torna diferente dos outros comandos que são de propósito especial), ps (o comando de duas letras que varia mais entre os unices), etc.

    
por 20.12.2013 / 01:46