Estou tentando entender o comando acima.
sudo /bin/ls %s %file_path
O que isso
%
faz? É algum tipo de mecanismo de substituição?O que
sudo /bin/ls
faz?
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")