O que significa "sudo /bin/ls %s %foo"?

O que significa "sudo /bin/ls %s %foo"?

Estou tentando entender o comando acima.

sudo /bin/ls %s %file_path
  1. O que isso %faz? É algum tipo de mecanismo de substituição?

  2. O que sudo /bin/lsfaz?

Responder1

% em scripts bash significa ancoragem, mas às vezes pode variar entre os programas, o que faz como umparte de algum parâmetroououtro. Paraeunão faz nada. Para o sudo ele faz algumas coisas, mas não neste contexto; não faz sentido para mim... este comando simplesmente tenta (como root; para constar, você quase nunca precisa executareucomo root, existem poucos lugares onde os nomes de arquivos não podem ser acessados ​​por usuários normais atravéseu) pesquisa nos diretórios %s e %foo por arquivos e deve nos fornecer o resultado de "ls não pode acessar %s: esse arquivo ou diretório não existe" e o mesmo para %foo. (Nunca poderá haver o diretório %s a menos que você o tenha criado)

Para scripts, faça o seguinte.

Dehttp://wiki.bash-hackers.org/syntax/pe:

AncoragemAlém disso, você pode "ancorar" uma expressão: Um # (hashmark) indicará que sua expressão corresponde à parte inicial da string, um % (sinal de porcentagem) fará isso para a parte final.

MYSTRING=xxxxxxxxxx
echo ${MYSTRING/#x/y}  # RESULT: yxxxxxxxxx
echo ${MYSTRING/%x/y}  # RESULT: xxxxxxxxxy

(O que o código está fazendo é trocar o primeiro ou o último "x" por um "y")

informação relacionada