В каких случаях некоторые программы могут потребовать, чтобы вы запускали их в определенном каталоге? [закрыто]

El patrón [a-z]*coincide con cero o más caracteres en el rango aaz(los caracteres reales dependen de la configuración regional actual ). Hay cero caracteres de este tipo al comienzo de la cadena 123 abc(, es decir, el patrón coincide con ), y también cuatro de ellos al comienzo de this is a line.

Si necesita al menos una coincidencia , use [a-z][a-z]*o [a-z]\{1,\}, o habilite expresiones regulares extendidas con sed -Ey use [a-z]+.

Para visualizar dónde coincide el patrón, agregue paréntesis alrededor de cada coincidencia:

$ sed 's/[a-z]*/(&)/' file
()123 abc
(this) is a line

O, para ver todas las coincidencias en las líneas:

$ sed 's/[a-z]*/(&)/g' file
()1()2()3() (abc)
(this) (is) (a) (line)

Compare ese último resultado con

$ sed -E 's/[a-z]+/(&)/g' file
123 (abc)
(this) (is) (a) (line)
-3
21.03.2018, 06:45
2 ответа

Изменение CWD может быть не единственным способом добиться этого, но архивные программы обычно извлекаются в CWD.

Вы также можете сделать программу незатронутой, переименовав каталог или изменив символические ссылки, которые будут частью аргумента пути, и вместо этого используйте ./пути.

Вы также можете предотвратить размонтирование тома, сделав его частью CWD.

1
28.01.2020, 05:19

Если программу необходимо запустить в определенном каталоге, обычно для этого есть две возможные причины:

  • Конфигурация программы включает не -абсолютные пути, и они будут указывать на правильное местоположение только при запуске программы в этом конкретном каталоге.

(Если программа сконфигурирована таким образом и не предпринимается никаких усилий для обеспечения правильной автоматической установки каталога перед запуском фактической программы, т.е. написав для него простой стартовый -сценарий, вы напрашиваетесь на ошибки.)

  • Программа ожидает найти что-то конкретное в каталоге, в котором она запущена, и будет использовать это в своей обработке. Команда makeработает следующим образом :если вы запустите ее, она будет ожидать найти файл с именем Makefileили makefileв текущем каталоге, определяя зависимости между файлами и командами для запуска, если файл новее чем файлы, которые зависят от него. Это позволяет, среди прочего, разработчику сэкономить время, перекомпилируя только те части большой программы, которые были изменены с момента предыдущей сборки.

(Современный GNU makeбудет выполнять некоторые предварительно установленные -основные задачи даже без Makefile, но это очень ограниченный набор функций по сравнению с тем, что может быть достигнуто с помощью Makefile.)

1
28.01.2020, 05:19

Теги

Похожие вопросы