Estoy tratando de entender el comando anterior.
sudo /bin/ls %s %file_path
¿Qué es lo que
%
hace? ¿Es algún tipo de mecanismo de sustitución?¿Que es lo que
sudo /bin/ls
hace?
Respuesta1
% en scripting bash significa anclaje, pero a veces puede variar entre programas lo que hace comoparte de algún parámetroootro. Paraesno hace nada. Para sudo hace algunas cosas, pero no en este contexto; no tiene sentido para mí... este comando simplemente intenta (como root; para que conste, casi nunca tienes que ejecutarescomo root, hay muy pocos lugares donde los usuarios normales no puedan acceder a los nombres de archivos a través dees) busca archivos en los directorios %s y %foo, y debería darnos el resultado de "ls no puede acceder a %s: No existe tal archivo o directorio" y lo mismo para %foo. (Nunca puede haber un directorio %s a menos que usted lo haya creado)
Para secuencias de comandos hace lo siguiente.
Dehttp://wiki.bash-hackers.org/syntax/pe:
AnclajeAdemás, puede "anclar" una expresión: un # (marca de almohadilla) indicará que su expresión coincide con la parte inicial de la cadena, un % (signo de porcentaje) lo hará para la parte final.
MYSTRING=xxxxxxxxxx
echo ${MYSTRING/#x/y} # RESULT: yxxxxxxxxx
echo ${MYSTRING/%x/y} # RESULT: xxxxxxxxxy
(Lo que hace el código es intercambiar la primera o la última "x" por una "y")