“sudo /bin/ls %s %foo” 是什么意思?

“sudo /bin/ls %s %foo” 是什么意思?

我正在尝试理解上述命令。

sudo /bin/ls %s %file_path
  1. 它起什么作用%?是某种替代机制吗?

  2. 做什么sudo /bin/ls

答案1

% 在 Bash 脚本中代表锚定,但有时在不同程序中它的作用会有所不同某些参数的一部分或者其他。 为了ls它什么都不做。对于 sudo 来说,它做了一些事情,但不是在这个上下文中;对我来说毫无意义……这个命令只是尝试(以 root 身份;顺便说一下,你几乎从来不需要运行ls作为 root,很少有地方无法让普通用户通过以下方式访问文件名ls) 在目录 %s 和 %foo 中搜索文件,结果应为“ls 无法访问 %s:没有这样的文件或目录”,对于 %foo 也是如此。(除非您创建了目录 %s,否则永远不会存在目录 %s)

对于脚本,它执行以下操作。

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

锚定此外,您可以“锚定”一个表达式:#(井号)表示您的表达式与字符串的开头部分匹配,%(百分号)表示与结尾部分匹配。

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

(代码的作用是将第一个或最后一个“x”换成“y”)

相关内容