t\imeou \cd(ou ou "tim"eou 'cd'ou ${-##*}timeou ${-+time}qualquer outra combinação de citações e expansões que você possa pensar que acabaria resolvendo para timeou cd), é: outra maneira de escrever cde time.
No entanto, isso acabaria resolvendo para cdou timeposteriormente a análise e interpretação da sintaxe do shell. Em particular, isso acontece muito depois do reconhecimento de palavras-chave do shell e da substituição de alias .
Portanto, no momento em que o shell procura palavras-chave em seu idioma, não é reconhecido ti\mecomo a timepalavra-chave shell. Então um:
ti\me echo test
seria reconhecido pelo shell como um comando simples, em oposição à timepalavra - chave seguida por um comando simples.
Em seguida, a citação ti\meseria processada (aqui que a barra invertida está citando o mcaractere que não precisa ser citado de qualquer maneira, o caractere de citação é removido, você obtém time) e um time comando seria pesquisado como qualquer outro comando (na lista de recursos internos) , funções e arquivos executáveis $PATH. É provável que esteja /bin/timeaqui)
Pois cd, não há cdpalavra-chave na linguagem shell, apenas um cdcomando interno (que tem precedência sobre o seu /usr/bin/cd). No entanto, se você definir um alias para cd(like alias cd=pushd), o mesmo novamente. Como a substituição do alias é feita muito cedo, antes da remoção da cotação, se você tiver um alias para cde não um \cd(observe que poucas conchas permitem aliases com barras invertidas), então escreva:
\cd dir
você está certificando-se de que seu cdalias não seja substituído.
Em suma, citando um nome de comando ou qualquer parte dele a impede de ser visto como uma palavra-chave shell (palavras-chave a ser coisas como while, for, if, {... timeé uma palavra-chave em alguns apenas conchas), e ignora um alias você pode ter para ele .
No entanto, ele não força esse comando a resolver para um arquivo executável $PATH, o comando ainda é pesquisado primeiro entre funções (que você pode contornar fazendo command time cmd...) e builtins (que você pode contornar executando env time cmd..., embora eu não conheça um shell que possui um timecomando interno ).
Observe que a citação também pode influenciar o comportamento dos componentes especiais da família typeset/ declare/ export/ local... em alguns shells. Consulte São necessárias cotações para atribuição de variável local? para detalhes.