Я пытаюсь понять вышеуказанную команду.

sudo /bin/ls %s %file_path
  1. Что делает % ? Это какой-то замещающий механизм?

  2. Что делает sudo /bin/ls ?

1 ответ1

1

% в bash-скриптинге означает привязку, но иногда она может варьироваться в зависимости от программы в зависимости от того или иного параметра. Для Ls она ничего не делает. Для sudo он делает некоторые вещи, но не в этом контексте; это не имеет смысла для меня ... эта команда просто пытается (как root; для записи, почти никогда не нужно запускать ls от имени root, очень мало мест, где обычные пользователи не могут получить доступ к именам файлов через ls) ищите в каталогах% s и% foo для файлов и должны дать нам результат "ls не может получить доступ к% s: нет такого файла или каталога" и почти то же самое для% foo. (Не может быть каталога% s, если вы его не создали)

Для сценариев это делает ниже.

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

Привязка Кроме того, вы можете "привязать" выражение: # (хэшмарк) будет указывать, что ваше выражение сопоставляется с начальной частью строки, а% (знак процента) сделает это для конечной части.

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

(Что делает код, так это то, что он торгует либо первым, либо последним "x" за "y")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .