% no bash scripting significa ancorar, mas às vezes pode variar entre programas o que faz como um parte de algum parâmetro ou outro . Para ls , ele não faz nada. Para o sudo, faz algumas coisas, mas não neste contexto; não faz sentido para mim ... este comando simplesmente tenta (como root; para o registro, você quase nunca tem que rodar ls como root, existem pouquíssimos lugares onde nomes de arquivos não podem ser acessado por usuários normais através de ls ) diretórios de pesquisa% s e% foo para arquivos, e deve nos fornecer o resultado de "ls não pode acessar% s: Nenhum arquivo ou diretório" e o mesmo para% foo. (Nunca poderá haver diretório% s a menos que você o tenha criado)
Para scripts, faça o seguinte.
De link :
Ancoragem Além disso, você pode "ancorar" uma expressão: Um # (hashmark) indicará que sua expressão é comparada com a parte inicial da sequência, um% (sinal de porcentagem) fará isso para a porção final.
MYSTRING=xxxxxxxxxx
echo ${MYSTRING/#x/y} # RESULT: yxxxxxxxxx
echo ${MYSTRING/%x/y} # RESULT: xxxxxxxxxy
(O que o código está fazendo é que ele está trocando o primeiro ou o último "x" por um "y")