Я бы поступил иначе, а именно, используя поиск в глубину вместо globstar **
Например, используя GNU find
, учитывая:
$ tree
.
└── dir
├── foo
│ └── baz
│ └── MainFoo.c
└── Foo
├── baz
└── MainFoo.c
5 directories, 2 files
, тогда
find . -depth -iname '*foo*' -execdir rename -- 's/Foo/Bar/;s/foo/bar/' {} +
приводит к
$ tree
.
└── dir
├── bar
│ └── baz
│ └── MainBar.c
└── Bar
├── baz
└── MainBar.c
5 directories, 2 files
Таким образом запустите приложение в терминале:
$ my-example & # put the program in the background
$ echo $! # print the program's PID
$!
-Заменяется идентификатором процесса задания, которое было последним переведено в фоновый режим.
Дополнительную информацию см. в разделе man bash
, Специальные параметры .
Если приложение уже запущено, выполните pgrep my-example
. Он вернет my-example
PID.
Есть несколько инструментов командной строки для управления процессами, которые вы можете проверить:
pidof <name>
, например. pidof bash
, чтобы получить PID процесса с заданным именем программы ps -aux
для получения списка запущенных программ с указанием времени их запуска и PID. Вы можете найти свою программу в списке. ps -eafx
, чтобы получить список запущенных программ со всеми параметрами командной строки. Возможно, вы обнаружите, что ваша программа ищет какую-то опцию или параметр строки команды -. pgrep [options] <patterns>
для поиска процесса по нескольким критериям. Вы можете запустить pgrep --help
, чтобы просмотреть все параметры. С помощью интерактивного инструмента командной строки htop
вы можете искать (F3 )для процесса, и вам напрямую предоставляется некоторая основная информация о ЦП, а также PID.