Este é um backtick . Um backtick não é um sinal de cotação. Tem um significado muito especial. Tudo o que você digita entre backticks é avaliado (executado) pelo shell antes do comando principal (como chown
em seus exemplos), e a saída dessa execução é usada por esse comando, como se você digite essa saída naquele local na linha de comando.
Então, o que
sudo chown 'id -u' /somedir
efetivamente executado (dependendo do seu ID de usuário ) é:
sudo chown 1000 /somedir
\ \ \ \
\ \ \ '-- the second argument to "chown" (target directory)
\ \ '-- your user ID, which is the output of "id -u" command
\ '-- "chown" command (change ownership of file/directory)
'-- the "run as root" command; everything after this is run with root privileges
Dê uma olhada em esta pergunta para saber por quê Em muitas situações, não é uma boa ideia usar backticks.
Btw, se você quiser usar um backtick literalmente, por exemplo. em uma string, você pode escapar colocando uma barra invertida ( \
) antes.